:root{--pink:oklch(94.6% .020 2);--pink-strong:oklch(83% .068 4);--blue:oklch(91% .043 235);--yellow:oklch(96% .062 92);--paper:oklch(98.8% .006 30);--ink:oklch(34% .035 359);--muted:oklch(44% .035 359);--accent:oklch(44% .105 4);--line:oklch(81% .038 4);--focus:oklch(43% .10 240);--s1:.25rem;--s2:.5rem;--s3:.75rem;--s4:1rem;--s6:1.5rem;--s8:2rem;--s12:3rem;--s16:4rem;--s24:6rem;--radius:1rem;--pill:999px;--small:.875rem;--body:1.0625rem;--medium:1.25rem;--large:1.75rem;--heading:clamp(2rem,3.5vw,3rem);--display:clamp(3.25rem,6.3vw,5.5rem);--title:'Baloo 2',cursive;--sans:'Hanken Grotesk',sans-serif;--ease:cubic-bezier(.22,1,.36,1)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:var(--s6)}body{margin:0;background:var(--pink);color:var(--ink);font:400 var(--body)/1.65 var(--sans);-webkit-font-smoothing:antialiased}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-family:var(--title);font-weight:600;line-height:1.15;text-wrap:balance}h2{font-size:var(--heading)}h3{font-size:var(--large)}p{text-wrap:pretty}img{display:block;max-width:100%;height:auto}a{color:inherit;text-decoration-thickness:1px;text-underline-offset:var(--s1)}button,input,textarea{font:inherit}button,a,input,textarea,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a,button,summary{touch-action:manipulation}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--focus);outline-offset:4px}button:disabled,input:disabled{cursor:wait;opacity:.65}.invitation{max-width:1120px;margin:auto;background:var(--paper)}header{display:flex;justify-content:space-between;align-items:center;padding:var(--s4) var(--s16);background:var(--pink)}.wordmark{font-family:var(--title);font-size:var(--large);font-weight:700;text-decoration:none}.wordmark span{color:var(--accent)}.nav-link{font-size:var(--small);font-weight:600;text-decoration:none;padding:var(--s3) 0}.nav-link span{margin-left:var(--s2)}.nav-link:hover{text-decoration:underline}.hero{background:var(--pink);display:grid;grid-template-columns:1.1fr 1fr;align-items:center;gap:var(--s16);padding:var(--s8) var(--s16) var(--s12)}.eyebrow{text-transform:uppercase;letter-spacing:.1em;font-size:var(--small);font-weight:600;margin-bottom:var(--s6)}h1{font-size:var(--display);font-weight:700;letter-spacing:-.02em}h1 span{color:var(--accent)}.hero-intro{margin:var(--s6) 0 var(--s8);font-size:var(--medium)}.hero-intro strong{font-weight:600}.button{display:inline-flex;justify-content:center;align-items:center;gap:var(--s6);min-height:48px;padding:var(--s3) var(--s6);border:0;border-radius:var(--pill);font-weight:600;text-decoration:none;transition:transform 150ms var(--ease),box-shadow 150ms var(--ease)}.primary{background:var(--accent);color:var(--paper);box-shadow:0 4px 0 var(--ink)}.button:hover{transform:translateY(-2px)}.button:active{transform:translateY(2px);box-shadow:none}.portrait{padding:var(--s3);background:var(--paper);border-radius:48% 48% var(--radius) var(--radius);transform:rotate(3deg);max-width:360px;justify-self:center}.portrait img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:48% 48% var(--s2) var(--s2)}.portrait figcaption{font-size:var(--small);text-align:center;padding:var(--s4) var(--s1) var(--s2)}.date-ribbon{display:flex;justify-content:center;align-items:center;gap:var(--s12);padding:var(--s6);background:var(--blue);font-variant-numeric:tabular-nums}.date-ribbon>span{font-size:var(--small);letter-spacing:.05em}.date-ribbon strong{font-size:var(--large);font-weight:600;letter-spacing:.05em}.date-ribbon b{margin-left:var(--s2)}.hello{text-align:center;padding:var(--s24) var(--s8) var(--s8)}.hello>p{margin-top:var(--s6);color:var(--muted)}.hello .parents{font-weight:600;color:var(--ink);margin-top:var(--s8)}.parents span{display:block;font-size:var(--small);font-weight:400;margin-top:var(--s1)}.fairground{max-width:800px;margin:auto}.fairground img{width:100%;height:auto}.party{background:var(--blue);padding:var(--s16);display:grid;grid-template-columns:1fr 1fr;gap:var(--s12);scroll-margin-top:var(--s4)}.party-heading .eyebrow{margin-bottom:var(--s4)}.party-heading>.text-link{margin-top:var(--s8)}.text-link{border:0;background:none;display:inline-flex;align-items:center;gap:var(--s2);padding:var(--s3) 0;min-height:44px;font-size:var(--small);font-weight:600;color:var(--ink);text-decoration:underline;text-underline-offset:var(--s1);transition:transform 150ms var(--ease)}.text-link:hover{transform:translateY(-2px)}.text-link:active{transform:translateY(2px)}.date-big time{display:flex;align-items:center;gap:var(--s6);font-size:var(--display);line-height:1;font-weight:500;letter-spacing:-.03em}.date-big span{font-size:var(--medium);line-height:1.5;letter-spacing:0}.arrival{padding:var(--s6) 0;border-bottom:1px solid var(--focus)}.arrival strong{font-size:var(--large);font-weight:600;margin-right:var(--s4)}.venue{padding-top:var(--s6)}.venue p{color:var(--muted);font-size:var(--small);margin:var(--s2) 0 var(--s6);max-width:32ch}.venue>.text-link{display:flex;margin-top:var(--s3)}.map{grid-column:1/-1;overflow:hidden;border-radius:var(--radius);background:var(--paper)}iframe{display:block;width:100%;height:320px}.dress{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:var(--s12);padding:var(--s16);background:var(--yellow)}.dress h2{font-size:var(--large)}.dress p{margin-top:var(--s4);font-size:var(--small);color:var(--muted)}.swatches{padding:0;margin:0;list-style:none;display:flex;gap:var(--s6);justify-content:space-between}.swatches li{text-align:center;font-size:var(--small);flex:1}.swatch{width:72px;height:72px;display:block;border-radius:50%;margin:0 auto var(--s3)}.pink{background:var(--pink-strong)}.blue{background:var(--blue)}.yellow{background:oklch(87% .126 89)}.album{padding:var(--s24) var(--s16)}.album-intro{margin-bottom:var(--s8)}.album-intro p{margin-top:var(--s3);color:var(--muted)}.album-grid{columns:3;column-gap:var(--s4)}.album-grid figure{break-inside:avoid;margin-bottom:var(--s4)}.album-grid img{border-radius:var(--radius);width:100%;transition:transform 200ms var(--ease)}.album-grid a{display:block;border-radius:var(--radius);overflow:hidden}.album-grid a:hover img{transform:scale(1.025)}.more-photos{margin-top:var(--s6)}summary{cursor:pointer;font-weight:600;min-height:48px;width:fit-content;padding:var(--s3) 0;text-decoration:underline;text-underline-offset:var(--s1)}summary:hover{color:var(--accent)}.more-photos[open] summary{margin-bottom:var(--s6)}.guest-photos{display:grid;grid-template-columns:1fr 1fr;gap:var(--s12);padding:var(--s16);background:var(--blue)}.guest-photos h2{font-size:var(--large)}.guest-photos p{margin-top:var(--s3)}.upload-box{padding:var(--s6);border:1px dashed var(--focus);border-radius:var(--radius)}.upload-title{display:block;font-weight:600;margin-bottom:var(--s4)}input[type=file]{width:100%;max-width:100%;font-size:1rem}input::file-selector-button{border:0;border-radius:var(--s2);padding:var(--s3);min-height:44px;background:var(--paper);color:var(--ink);cursor:pointer;margin-right:var(--s2)}input::file-selector-button:hover{background:var(--pink)}#photo-help{font-size:var(--small);color:var(--muted)}.guest-photo-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:var(--s3);grid-column:1/-1}.guest-photo-list:empty{display:none}.guest-photo-list img{width:100%;height:160px;object-fit:cover;border-radius:var(--s2)}.wishes{background:var(--pink);padding:var(--s16);display:grid;grid-template-columns:1fr 1fr;gap:var(--s12)}.wishes-intro>p:not(.eyebrow){margin-top:var(--s6);color:var(--muted)}form{display:flex;flex-direction:column;gap:var(--s3)}form label{font-weight:600}form input,textarea{border:1px solid var(--line);border-radius:var(--s2);padding:var(--s3) var(--s4);width:100%;background:var(--paper);color:var(--ink);min-height:48px;font-size:1rem}textarea{resize:vertical;min-height:160px}::placeholder{color:var(--muted)}form label:not(:first-child){margin-top:var(--s3)}form .button{align-self:flex-start;margin-top:var(--s3)}.status{font-size:var(--small);color:var(--accent);white-space:pre-line}.status:empty{display:none}.wish-list{margin-top:var(--s8)}.wish-list blockquote{margin:var(--s4) 0 0;padding:var(--s4);background:var(--paper);border-radius:var(--s2);overflow-wrap:anywhere}.wish-list cite{display:block;font-style:normal;font-size:var(--small);margin-top:var(--s2);font-weight:600}footer{padding:var(--s16) var(--s8);text-align:center}footer h2{font-size:var(--large)}footer>p{margin-top:var(--s3);color:var(--muted)}.contacts{display:flex;justify-content:center;flex-wrap:wrap;gap:var(--s4);margin-top:var(--s6);font-size:var(--small)}.contacts a{display:inline-block;padding:var(--s3) 0;min-height:44px}.share{display:flex;justify-content:center;gap:var(--s6);margin-top:var(--s4)}.signoff{font-size:var(--small);padding-top:var(--s6)}.toast{position:fixed;bottom:var(--s6);left:50%;transform:translateX(-50%);background:var(--ink);color:var(--paper);padding:var(--s3) var(--s6);border-radius:var(--radius);max-width:calc(100% - 32px);width:max-content;z-index:10;font-size:var(--small)}.skip{position:fixed;top:var(--s2);left:var(--s2);padding:var(--s3);background:var(--paper);z-index:20;transform:translateY(-150%)}.skip:focus{transform:none}
@media(min-width:760px){.hero{min-height:580px}}
@media(max-width:759px){header{padding:var(--s3) var(--s6)}.hero{padding:var(--s6) var(--s6) var(--s8);gap:var(--s8);grid-template-columns:1fr;text-align:center}.hero .eyebrow{margin-bottom:var(--s3)}.hero-intro{font-size:var(--body);margin:var(--s4) 0 var(--s6)}h1{font-size:clamp(3.25rem,13vw,4.5rem)}.portrait{width:240px;max-width:75%;padding:var(--s2);transform:rotate(2deg)}.portrait img{aspect-ratio:1/1;object-position:center 58%}.portrait figcaption{font-size:.75rem;padding:var(--s3) 0 var(--s1)}.date-ribbon{gap:var(--s2);padding:var(--s4);flex-wrap:wrap;justify-content:space-around}.date-ribbon strong{font-size:var(--medium)}.date-ribbon>span{font-size:.75rem}.date-ribbon b{margin-left:var(--s1)}.hello{padding:var(--s12) var(--s6) var(--s8)}.hello p br{display:none}.hello .parents{font-size:var(--small)}.party{padding:var(--s12) var(--s6);gap:var(--s8);grid-template-columns:1fr}.party-heading h2 br{display:none}.party-heading>.text-link{margin-top:var(--s3)}.party-heading .eyebrow{font-size:.75rem}.date-big time{font-size:4.5rem}.map iframe{height:280px}.dress{padding:var(--s12) var(--s6);gap:var(--s8);grid-template-columns:1fr}.swatches{gap:var(--s3)}.swatch{width:64px;height:64px}.album{padding:var(--s12) var(--s6)}.album-grid{columns:2;column-gap:var(--s3)}.album-grid figure{margin-bottom:var(--s3)}.guest-photos,.wishes{grid-template-columns:1fr;padding:var(--s12) var(--s6);gap:var(--s8)}.wishes h2 br{display:none}.wishes .eyebrow{margin-bottom:var(--s4)}.wish-list:empty{display:none}footer{padding:var(--s12) var(--s6)}.contacts{gap:0;flex-direction:column}.share{gap:var(--s6)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}

/* Preserve the complete original We Bare Bears artwork without cropping. */
.bear-cover{width:100%;max-width:360px;justify-self:center}.bear-cover img{width:100%;height:auto;border-radius:var(--radius)}.hello>.portrait{width:240px;margin:0 auto var(--s12)}.hello{padding-bottom:var(--s16)}
@media(max-width:759px){.bear-cover{max-width:280px}.hello>.portrait img{aspect-ratio:3/4;object-fit:contain}.hello{padding-bottom:var(--s12)}}
