:root{--paper:#f4ecd9;--ink:#302d25;--red:#a8392b;--teal:#174d49;--gold:#e8ba52}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif;line-height:1.6}a{color:inherit;text-decoration:none}a:focus-visible{outline:3px solid var(--red);outline-offset:6px}img{display:block;max-width:100%;object-fit:cover}h1,h2,h3,p{margin-top:0}h1,h2,h3,.wordmark{font-family:Georgia,'Times New Roman',serif}em{font-weight:400} .welcome-strip{background:var(--teal);color:var(--paper);text-align:center;font-size:10px;letter-spacing:2.2px;padding:10px 15px;font-weight:700}.welcome-strip .welcome-phrase{display:inline-block;white-space:nowrap}.welcome-strip .welcome-heart{color:var(--gold);padding-left:16px}.site-header{max-width:1320px;margin:auto;padding:25px 5%;display:flex;align-items:center;justify-content:space-between;gap:24px;border-bottom:1px solid #302d2525}.wordmark{font-size:30px;font-weight:900;letter-spacing:-1.5px;line-height:1.1}.wordmark span{display:block;font:9px Arial,sans-serif;letter-spacing:4px;text-align:center;margin-top:7px}.site-header nav{display:flex;gap:33px;font-size:13px;font-weight:700}.site-header nav a:hover,.text-link:hover{color:var(--red)}.header-button{border:1px solid var(--ink);padding:10px 19px;font-size:12px;font-weight:bold}.header-button span{margin-left:20px}.hero{max-width:1320px;margin:auto;padding:70px 5% 80px;display:grid;grid-template-columns:1fr 1fr;gap:45px;align-items:center}.eyebrow{font-size:10px;letter-spacing:2.1px;font-weight:800;margin-bottom:22px}.eyebrow span{color:var(--red);font-size:21px;vertical-align:middle;margin-right:7px}h1{font-size:clamp(36px,4.5vw,64px);line-height:1.03;letter-spacing:-3px;margin-bottom:26px}h1 em{color:var(--red)}.intro{max-width:360px;font-size:15px;color:#595349}.hero-actions{display:flex;align-items:center;gap:26px;margin-top:29px}.button{background:var(--red);color:#fff5df;padding:14px 21px;font-size:12px;font-weight:bold;box-shadow:3px 3px 0 var(--ink)}.button span{margin-left:25px}.button:hover{background:#853025}.text-link{font-size:12px;font-weight:bold;border-bottom:1px solid;padding-bottom:5px}.handwritten{font:italic 20px Georgia,serif;color:var(--teal);margin-top:32px;transform:rotate(-3deg)}.handwritten span{color:var(--red);font-size:30px;margin-left:8px}.hero-visual{position:relative;padding:10px 9px}.photo-frame{transform:rotate(3deg);padding:11px 11px 0;background:#fffbeb;box-shadow:0 8px 22px #302d2520;border:1px solid #302d2522}.photo-frame img{width:100%;height:435px;object-position:57% center}.photo-caption{text-align:center;font-size:9px;font-weight:bold;letter-spacing:2px;padding:15px 0}.round-sticker{position:absolute;right:-5px;top:-23px;width:112px;height:112px;background:var(--gold);border:2px dashed var(--ink);outline:5px solid var(--gold);border-radius:50%;transform:rotate(15deg);display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:10px;letter-spacing:1.5px;font-weight:bold;line-height:1.5}.round-sticker strong{color:var(--red);font-size:35px;line-height:1.25}.photo-martini{position:absolute;bottom:-30px;left:-21px;width:100px;height:110px;object-fit:contain;transform:rotate(-12deg);pointer-events:none}.ticker{background:var(--red);color:var(--paper);padding:19px 4%;display:flex;justify-content:space-around;gap:20px;align-items:center;font-size:12px;font-weight:bold;letter-spacing:2px;flex-wrap:wrap}.ticker b{font-size:22px;color:var(--gold)}.section-wrap{max-width:1188px;margin:0 auto;padding:85px 35px}.our-place{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:95px;align-items:center}.second-photo{position:relative;min-width:0;width:100%;max-width:100%;padding:10px;background:#fff9ea;border:1px solid #302d2522;border-radius:8px;overflow:hidden}.second-photo img{width:100%;height:420px;object-position:center 40%}.photo-note{position:absolute;bottom:25px;left:25px;background:var(--gold);padding:7px 15px;font:italic 22px Georgia,serif;transform:rotate(5deg)}h2{font-size:43px;line-height:1.12;letter-spacing:-1.5px;margin-bottom:25px}h2 em{color:var(--red)}.place-copy p:not(.eyebrow),.karaoke-copy p:not(.eyebrow){font-size:15px;max-width:430px;color:#595349}.karaoke{max-width:none;background:var(--teal);color:var(--paper);display:grid;grid-template-columns:1fr 1fr;gap:50px;padding:65px max(6%,calc((100% - 1090px)/2))}.mic-art{display:flex;flex-direction:column;align-items:center;justify-content:center}.mic-art img{height:340px;width:340px;object-fit:contain}.art-note{font:italic 26px Georgia,serif;transform:rotate(-8deg);color:var(--gold)}.karaoke h2{font-size:55px}.karaoke h2 em{color:var(--gold)}.karaoke-copy p:not(.eyebrow){color:#e1e5d6}.karaoke-tag{display:inline-block;border:1px solid #f4ecd970;padding:10px 18px;font-size:10px;letter-spacing:2px}.karaoke-tag span{color:var(--gold);padding-left:18px}.good-stuff{text-align:center}.good-grid{display:grid;grid-template-columns:repeat(3,1fr);margin-top:45px;gap:45px}.good-grid article+article{border-left:1px solid #302d2530;padding-left:35px}.card-icon{font-size:45px;color:var(--red);line-height:1}.good-grid h3{font-size:25px;margin:20px 0 10px}.good-grid p{font-size:14px;color:#595349}.closing{display:flex;align-items:center;justify-content:center;gap:55px;background:var(--gold);padding:45px 20px;text-align:center}.closing p{font:700 36px/1.2 Georgia,serif;margin:0}.closing span{font-size:45px;color:var(--red)}footer{max-width:1320px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:25px;padding:40px 5%}footer p{font-size:12px;margin:0;color:#595349}footer .wordmark{font-size:25px}.skip{position:absolute;left:15px;top:-100px;background:var(--paper);padding:12px;z-index:10}.skip:focus{top:15px}@media(min-width:1500px){.hero{padding-top:90px;padding-bottom:100px}}@media(max-width:800px){.site-header{flex-wrap:wrap;padding:23px 6%}.site-header nav{order:3;width:100%;justify-content:center;gap:30px;border-top:1px solid #302d2520;padding-top:17px}.hero{padding:45px 7% 65px;grid-template-columns:1fr;gap:50px}h1{font-size:clamp(36px,9vw,64px)}.hero-visual{max-width:560px;width:100%;margin:auto}.photo-frame img{height:380px}.our-place{gap:40px;grid-template-columns:1fr;padding:65px 7%}.second-photo{max-width:470px;width:100%;margin:auto}.place-copy{padding-top:10px}.karaoke{grid-template-columns:1fr;gap:25px;padding:55px 8%}.mic-art img{height:250px;width:250px}.karaoke-copy{max-width:500px;margin:auto}.good-grid{gap:25px;grid-template-columns:1fr}.good-grid article+article{border-left:0;border-top:1px solid #302d2530;padding:25px 0 0}.good-grid p{max-width:320px;margin:auto}.closing{gap:15px}.closing p{font-size:29px}.closing span{font-size:25px}footer{flex-direction:column;text-align:center}.ticker{font-size:10px;gap:13px}.ticker span:last-child{display:none}}@media(max-width:400px){.hero-actions{gap:18px}.button{padding:12px 14px}.button span{margin-left:10px}.text-link{font-size:11px}.header-button{padding:8px 12px}.wordmark{font-size:26px}h2{font-size:36px}.photo-frame img{height:310px}.round-sticker{width:95px;height:95px}.welcome-strip{font-size:8px;letter-spacing:1.3px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Decorative hummingbirds share the existing illustration palette. */
.hummingbird{position:absolute;pointer-events:none;object-fit:contain;z-index:1}
.hummingbird-hero{width:125px;height:auto;left:-18px;top:-38px;transform:rotate(-12deg)}
.mic-art{position:relative}
.mic-art .hummingbird-karaoke{width:110px;height:auto;right:0;top:12px;transform:scaleX(-1) rotate(-12deg)}
@media(max-width:800px){.hummingbird-hero{width:100px;left:-8px;top:-30px}.mic-art .hummingbird-karaoke{width:90px;right:0;top:20px}}

/* Venue details and transparent martini artwork. */
.visit-details{max-width:1320px;margin:auto;padding:14px 5%;display:flex;justify-content:space-between;gap:8px 24px;flex-wrap:wrap;color:var(--teal);font-size:13px;border-bottom:1px solid #302d2525}
.visit-details p{margin:0}
.martini-icon{display:inline-block;width:50px;height:55px;object-fit:contain;vertical-align:bottom}
@media(max-width:800px){.visit-details{justify-content:center;text-align:center;padding:14px 6%}}

/* Native horizontal scrolling remains available without JavaScript. */
.our-place > *{min-width:0}
.story-photo-window{position:relative;width:100%;min-width:0;overflow:hidden;border-radius:3px}
.story-gallery{display:flex;width:100%;max-width:100%;min-width:0;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;scrollbar-width:thin;scrollbar-color:var(--teal) #fff9ea}
.story-slide{flex:0 0 100%;width:100%;max-width:100%;min-width:0;overflow:hidden;scroll-snap-align:start;scroll-snap-stop:always}
.story-slide img{display:block;width:100%;height:clamp(260px,50vw,420px);object-fit:contain;background:var(--ink)}
.story-photo-window .photo-note{pointer-events:none;max-width:calc(100% - 40px)}
.story-gallery-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;padding:12px 4px 2px;font-size:12px;color:var(--teal)}
.story-gallery-controls{display:flex;align-items:center;gap:10px;font-weight:bold;font-variant-numeric:tabular-nums}
.story-gallery-controls[hidden]{display:none}
.story-gallery-controls button{width:44px;height:44px;border:1px solid var(--teal);background:var(--paper);color:var(--teal);font-size:22px;cursor:pointer;border-radius:50%}
.story-gallery-controls button:hover:not(:disabled){background:var(--teal);color:var(--paper)}
.story-gallery-controls button:disabled{opacity:.4;cursor:default}
.story-gallery:focus-visible,.story-gallery-controls button:focus-visible{outline:3px solid var(--red);outline-offset:3px}

/* Dismiss the introductory ribbon as soon as gallery navigation starts. */
.story-photo-window .photo-note{opacity:1;transition:opacity .3s ease}
.story-gallery-started .photo-note{opacity:0}
.karaoke-hours{max-width:360px;text-align:center;font-size:16px;font-weight:700;line-height:1.5;margin-bottom:24px}
@media(prefers-reduced-motion:reduce){.story-photo-window .photo-note{transition:none}}

/* Custom layout: mirror ACME touch defaults without importing its page theme.
   Low specificity lets intentional gesture controls retain their own behavior. */
:where(button,a[href],input,select,textarea,summary,[role="button"]){touch-action:manipulation}
/* Cover photo edges and the gallery scroll container as well as the images.
   Manipulation permits native panning and pinch zoom without double-tap zoom. */
:where(.hero-visual,.hero-visual img,.second-photo,.story-photo-window,.story-gallery,.story-slide,.story-slide img){touch-action:manipulation}
@media (pointer:coarse){input,select,textarea{font-size:max(1em,16px)}}

/* Separate footer details and give its links comfortable touch targets. */
footer p + p{margin-top:12px}
footer a{display:inline-flex;min-height:44px;align-items:center;justify-content:center}
footer .wordmark{flex-direction:column}
footer .text-link{padding:10px 8px}
@media(max-width:800px){footer{gap:32px;padding-top:48px;padding-bottom:48px}}

/* Desktop gallery enlargement uses surrounding whitespace without changing
   the grid footprint or footer position. Keep the photo's bottom/right fixed.
   At 801px the offsets approach zero; at 1200px height reaches 500px.
   Left growth never exceeds the section's available outer margin. */
@media(min-width:801px){
  .our-place .second-photo{
    --story-grow-up:clamp(0px,calc(20vw - 160px),80px);
    --story-grow-left:clamp(0px,calc(50vw - 574px),100px);
    overflow:visible;
    isolation:isolate;
    background:transparent;
    border-color:transparent;
  }
  .our-place .second-photo::before{
    content:"";
    position:absolute;
    inset:calc(-1px - var(--story-grow-up)) -1px -1px calc(-1px - var(--story-grow-left));
    z-index:-1;
    pointer-events:none;
    background:#fff9ea;
    border:1px solid #302d2522;
    border-radius:8px;
  }
  .our-place .story-photo-window{
    width:calc(100% + var(--story-grow-left));
    margin-left:calc(-1 * var(--story-grow-left));
    margin-top:calc(-1 * var(--story-grow-up));
  }
  .our-place .story-slide img{
    height:calc(clamp(260px,50vw,420px) + var(--story-grow-up));
  }
}

/* Make address links recognizable and comfortable to tap at every placement. */
a.map-link{display:inline-flex;align-items:center;min-height:44px;max-width:100%;text-decoration:underline;text-underline-offset:3px}
a.map-link:hover{text-decoration-thickness:2px}
.round-sticker{text-decoration:none}.wall-invitation{display:block;text-decoration:none;color:inherit;margin-top:12px;margin-bottom:64px;border:1px solid #bba98d;background:#e9dcc3;overflow:hidden}.wall-invitation-title{padding:24px 28px}.wall-invitation-title h2{margin:8px 0;font-size:clamp(28px,3.5vw,44px)}.wall-strip{display:flex;width:100%;overflow:hidden;background:#30291f}.wall-strip-panel{position:relative;flex:1;min-width:0;align-self:flex-start}.wall-strip-backdrop{display:block;width:100%;height:auto}.wall-strip-memory{display:none;position:absolute;object-fit:fill;border:0.4px solid #fff8e8;box-shadow:1px 2px 4px #0008}.wall-invitation:focus-visible{outline:4px solid #8e352d;outline-offset:5px}@media(max-width:650px){.wall-invitation-title{padding:20px}.wall-strip{flex-direction:column}.wall-strip-panel{width:100%}}

.wall-phrase{position:absolute;z-index:30;pointer-events:none;box-sizing:border-box;width:max-content;max-width:100%;overflow:hidden;overflow-wrap:anywhere;padding:8px 12px;border-radius:5px;background:#fff8e8;color:#30291f;box-shadow:0 3px 12px #0006;font:15px/1.4 system-ui,sans-serif;text-align:left}
