.events-page .page-content{padding-bottom:20px;text-align:center;max-width:1000px}.events-page .page-content h1{margin:18px 0 25px;font-size:clamp(46px,6vw,78px)}.events-page .page-intro{margin:0 auto;max-width:650px;font-size:clamp(19px,2vw,24px);line-height:1.5}.events-page .page-intro em{color:#81947e;font-style:normal}
.event-gallery{position:relative;max-width:1200px;margin:15px auto 65px;overflow:hidden;touch-action:pan-y;padding:20px 0 0}.gallery-stage{height:430px;position:relative;perspective:1300px}.event-card{--offset:0;--distance:0;position:absolute;left:50%;top:25px;width:clamp(230px,29vw,330px);padding:12px 12px 18px;border:0;background:#fffdf5;color:var(--ink);box-shadow:0 8px 23px #34474025,0 0 0 1px #4c5b4112;transform:translateX(calc(-50% + var(--offset)*61%)) translateY(calc(var(--distance)*13px)) rotateY(calc(var(--offset)*-13deg)) rotateZ(calc(var(--offset)*2deg)) scale(calc(1 - var(--distance)*.14));z-index:calc(5 - var(--distance));transition:transform .8s cubic-bezier(.2,.7,.2,1),opacity .8s;opacity:calc(1 - var(--distance)*.15);cursor:pointer;text-align:center;font:inherit;outline-offset:5px;will-change:transform}.event-picture{height:300px;overflow:hidden;background:#cad6dc;position:relative}.event-picture img{width:100%;height:100%;object-fit:cover;display:block}.event-card-title{font:500 27px/1.1 Caveat,cursive;display:block;margin-top:15px}.event-card-note{display:block;font-size:11px;letter-spacing:.13em;text-transform:uppercase;margin-top:9px;color:#839083}.coming-picture{display:grid;place-content:center;gap:12px;color:#7b8977;background:#d9dfd1}.coming-picture span{font:300 76px Fraunces,serif;opacity:.55}.coming-picture small{font:italic 23px Newsreader,serif}.coming-2{background:#dbd7e0;color:#8d8295}.coming-3{background:#e8dcc7;color:#9f8d72}.coming-4{background:#cedcde;color:#7e9498}.coming-picture:after{content:'';position:absolute;inset:12px;border:1px solid #fffffa75}.gallery-controls{display:flex;align-items:center;justify-content:center;gap:25px;margin:0 auto}.gallery-controls button{background:transparent;border:1px solid #9ca99377;border-radius:50%;width:46px;height:46px;color:var(--ink);font-size:25px;cursor:pointer}.gallery-count{font-size:14px;letter-spacing:.15em;min-width:65px;text-align:center}.gallery-help{text-align:center;color:var(--muted);font-size:16px;margin:18px 20px 0}.gallery-dots{display:flex;gap:8px;justify-content:center;margin:18px}.gallery-dots button{width:7px;height:7px;padding:0;border-radius:50%;border:0;background:#bcc6b7;cursor:pointer;box-shadow:0 0 0 5px transparent}.gallery-dots button[aria-current=true]{background:#546f61}
.memory-dialog{border:1px solid #fffff5;border-radius:24px;background:#f9f6ee;color:var(--ink);padding:0;width:min(1020px,calc(100vw - 40px));max-height:calc(100dvh - 40px);box-shadow:0 24px 100px #101e2555;overflow:auto}.memory-dialog::backdrop{background:#15211ccc;backdrop-filter:blur(9px);-webkit-backdrop-filter:blur(9px)}.memory-dialog[open]{animation:memory-open .3s ease-out}.memory-close{position:sticky;top:16px;float:right;margin:16px 16px -54px 0;z-index:5;border:1px solid #83947b33;border-radius:50%;width:40px;height:40px;display:grid;place-content:center;background:#fffdf3e8;color:var(--ink);font:28px/1 Newsreader,serif;cursor:pointer}.memory-layout{display:grid;grid-template-columns:1fr 1.05fr;gap:40px;padding:48px 40px}.memory-story h2{font:350 clamp(32px,4vw,48px)/1.1 Fraunces,serif;letter-spacing:-.04em;margin:20px 0 25px}.memory-story p{font-size:19px;line-height:1.5}.memory-story .memory-note{font-size:15px;color:var(--muted);line-height:1.5}.memory-guide{counter-reset:steps;list-style:none;padding:0;margin:28px 0;display:grid;gap:15px}.memory-guide li{display:flex;align-items:baseline;gap:12px;font-size:17px;line-height:1.4}.memory-guide li:before{counter-increment:steps;content:'0' counter(steps);font:11px Fraunces,serif;color:#8c9e87}.memory-maker{padding-top:20px}.photo-drop{display:grid;place-content:center;position:relative;border:1px dashed #a6b39b;border-radius:16px;min-height:190px;padding:24px;text-align:center;background:#edf0e5;cursor:pointer;overflow:hidden}.photo-drop input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.photo-drop:focus-within{outline:2px solid #536d9a;outline-offset:3px}.photo-drop .upload-mark{font:34px/1 Fraunces,serif;margin-bottom:12px;color:#8ca086}.photo-drop strong{font-size:21px;font-weight:400}.photo-drop small{font-size:14px;color:var(--muted);margin-top:8px}.photo-preview{display:none;width:100%;height:190px;object-fit:contain;position:absolute;inset:0;background:#e9eddf;pointer-events:none}.photo-drop.has-photo .photo-preview{display:block}.photo-drop.has-photo .photo-label{visibility:hidden}.memory-options{border:0;padding:0;margin:20px 0}.memory-options legend{font-size:17px;margin-bottom:10px}.memory-choices{display:flex;gap:10px}.memory-choice{flex:1;position:relative;padding:13px 10px;border:1px solid #b7c2ae;border-radius:12px;display:flex;align-items:center;justify-content:center;gap:7px;font-size:16px;cursor:pointer}.memory-choice:has(input:checked){background:#e1e7d8;border-color:#81967a}.memory-choice input{accent-color:#60785c;margin:0}.color-dot{width:12px;height:12px;border-radius:50%;display:inline-block;background:#a8c8de}.color-dot.pink{background:#e2b3bf}.memory-consent{display:flex;gap:10px;font-size:14px;line-height:1.45;margin:22px 0}.memory-consent input{accent-color:#60785c;flex:0 0 17px;margin-top:3px}.memory-submit,.memory-save,.memory-again{display:block;width:100%;min-height:48px;border:0;border-radius:12px;background:#415c4b;color:#fffdf5;font:400 19px Newsreader,serif;padding:14px 20px;cursor:pointer}.memory-submit:disabled{opacity:.5;cursor:wait}.memory-privacy{font-size:13px;line-height:1.5;color:var(--muted);margin:14px 0}.memory-status{min-height:25px;font-size:16px;line-height:1.4;color:#81674b;margin:14px 0 0}.memory-status:empty{min-height:0;margin:0}.memory-progress,.memory-result{display:none;text-align:center}.memory-maker[data-state=loading] form,.memory-maker[data-state=done] form{display:none}.memory-maker[data-state=loading] .memory-progress,.memory-maker[data-state=done] .memory-result{display:block}.memory-progress{padding:70px 15px}.memory-orbit{width:80px;height:80px;border:1px solid #bac6b3;border-radius:50%;margin:0 auto 35px;position:relative;animation:memory-orbit 3.5s linear infinite}.memory-orbit:before{content:'✦';position:absolute;top:-11px;left:29px;color:#b69b60;font-size:25px}.memory-orbit:after{content:'☾';position:absolute;inset:17px;font-size:34px;color:#9caf94;animation:memory-orbit 3.5s linear infinite reverse}.memory-progress h3{font:350 28px Fraunces,serif}.memory-progress p{font-size:18px;line-height:1.5;color:var(--muted)}.memory-result img{display:block;width:100%;height:auto;border-radius:12px;user-select:auto;-webkit-touch-callout:default}.memory-result p{font-size:15px;color:var(--muted);line-height:1.5}.memory-save{margin-top:18px}.memory-again{background:transparent;color:var(--ink);border:1px solid #a7b49b;margin-top:12px}.memory-result figcaption{font:24px Caveat,cursive;margin:15px 0}.memory-result figure{margin:0}
.events-page .page-content{padding-top:138px;padding-bottom:0}.events-page .page-content h1{font-size:clamp(46px,5vw,64px);margin:12px 0 18px}.events-page .page-intro{font-size:clamp(19px,1.7vw,22px);max-width:720px}.event-gallery{margin-top:8px;padding-top:8px}.gallery-stage{height:385px}.event-picture{height:265px}.coming-picture small span{font:inherit;opacity:1}
@keyframes memory-open{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes memory-orbit{to{transform:rotate(360deg)}}
@media(max-width:650px){.events-page .page-content{padding-top:140px}.gallery-stage{height:370px}.event-card{width:245px;padding:10px 10px 16px}.event-picture{height:245px}.event-card-title{font-size:26px}.event-gallery{margin-top:0;margin-bottom:50px}.memory-dialog{width:calc(100vw - 20px);max-height:calc(100dvh - 20px);border-radius:20px}.memory-layout{grid-template-columns:1fr;gap:5px;padding:35px 23px 28px}.memory-story h2{max-width:85%;margin-top:18px}.memory-story p{font-size:18px}.memory-guide{margin:20px 0;gap:10px}.memory-story .memory-note{font-size:14px}.memory-maker{padding-top:10px}.memory-close{top:12px;margin:12px 12px -52px 0}.memory-progress{padding:45px 10px}.memory-choices{gap:7px}.memory-choice{font-size:15px}}
@media(prefers-reduced-motion:reduce){.event-card{transition:none}.memory-orbit,.memory-orbit:after,.memory-dialog[open]{animation:none}}

/* The outer frame and close button stay still while the inner panel scrolls. */
.memory-dialog{overflow:hidden;overflow:clip}
.memory-dialog[open]{display:flex;flex-direction:column}
.memory-scroll{
 min-height:0;
 margin:12px 8px;
 overflow:auto;
 overscroll-behavior:contain;
 scrollbar-width:thin;
 scrollbar-color:#889b84 transparent;
 scrollbar-gutter:stable;
}
.memory-scroll::-webkit-scrollbar{width:6px}
.memory-scroll::-webkit-scrollbar-thumb{background:#889b84;border-radius:8px}
.memory-scroll:focus-visible{outline:2px solid #536d9a;outline-offset:-2px}
.memory-dialog .memory-close{position:absolute;top:16px;right:16px;float:none;margin:0}
.memory-layout{padding:36px 32px}

:is(.gallery-controls button,.gallery-dots button,.memory-close,.memory-submit,.memory-save,.memory-again,.memory-choice){
 transition:background-color .18s ease,border-color .18s ease,box-shadow .18s ease,transform .16s ease;
}
@media(hover:hover){
 :is(.gallery-controls button,.memory-close,.memory-again,.memory-choice):hover{
  background:#dce7d7;
  border-color:#839c7e;
  box-shadow:0 3px 12px #314c3a20;
 }
 :is(.memory-submit,.memory-save):enabled:hover{background:#53765e}
 .gallery-dots button:hover{background:#546f61;box-shadow:0 0 0 4px #546f6126}
}
:is(.gallery-controls button,.gallery-dots button,.memory-close,.memory-submit,.memory-save,.memory-again):enabled:active,
.memory-choice:active{transform:scale(.92)}
@media(max-width:650px){
 .memory-dialog .memory-close{top:12px;right:12px}
 .memory-layout{padding:23px 15px 16px}
}
@media(prefers-reduced-motion:reduce){
 :is(.gallery-controls button,.gallery-dots button,.memory-close,.memory-submit,.memory-save,.memory-again,.memory-choice){
  transition:none;
 }
 :is(.gallery-controls button,.gallery-dots button,.memory-close,.memory-submit,.memory-save,.memory-again):enabled:active,
 .memory-choice:active{transform:none}
}
