/* hutchandkaty.com: header, navigation and page text shared by every page. */
:root{color-scheme:light;--paper:#f7f3ea;--ink:#2a4f36;--muted:#61705f;--accent:#9b7b3a;--line:#d8d8c8;--gutter:clamp(20px,4vw,52px)}
*{box-sizing:border-box}
html{background:var(--paper);-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.7 Inter,system-ui,-apple-system,'Segoe UI',sans-serif;-webkit-font-smoothing:antialiased}
a{color:inherit}
button{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--ink);outline-offset:4px}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.skip-link{position:absolute;top:-100px;left:var(--gutter);padding:10px 14px;background:var(--paper);z-index:10}
.skip-link:focus{top:10px}


/* Header: date and place top left, names centred, pages listed below. */
.masthead{position:relative;padding:22px var(--gutter) 0;text-align:center}
.masthead-meta{position:absolute;top:24px;left:var(--gutter);margin:0;text-align:left;font-size:11.5px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);line-height:1.6}
.masthead-meta .sep{margin:0 .3em}
.masthead-title{margin:clamp(64px,8vw,92px) 0 0;font:400 clamp(46px,7.4vw,96px)/1.05 'Playfair Display',Georgia,serif;letter-spacing:-.03em}
.masthead-title a{text-decoration:none}
.masthead-title span{font-style:italic;font-size:.78em;color:var(--accent);padding:0 .04em}
.site-nav{margin:clamp(22px,2.6vw,30px) auto 0;display:flex;justify-content:center;flex-wrap:wrap;gap:6px clamp(20px,3.2vw,44px)}
.site-nav a{padding:6px 0 5px;font-size:12px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;text-decoration:none;color:var(--ink);border-bottom:1px solid transparent;transition:border-color .2s,color .2s}
.site-nav a:hover{border-bottom-color:var(--line)}
.site-nav a[aria-current=page]{border-bottom-color:var(--accent)}
.menu-button{display:none}

/* Small screens: the page list folds behind a menu button. */
@media(max-width:760px){
 .masthead-meta{top:20px;font-size:10.5px;letter-spacing:.14em}
 .masthead-meta .sep{display:none}
 .masthead-meta .place{display:block}
 .masthead-title{margin-top:78px}
 .menu-button{display:block;position:absolute;top:12px;right:calc(var(--gutter) - 10px);width:44px;height:44px;padding:0;border:0;background:none;cursor:pointer}
 .menu-button i{position:absolute;left:11px;width:22px;height:1.5px;background:var(--ink);transition:transform .25s,opacity .2s}
 .menu-button i:nth-child(1){top:15px}.menu-button i:nth-child(2){top:21.25px}.menu-button i:nth-child(3){top:27.5px}
 .open .menu-button i:nth-child(1){transform:translateY(6.25px) rotate(45deg)}
 .open .menu-button i:nth-child(2){opacity:0}
 .open .menu-button i:nth-child(3){transform:translateY(-6.25px) rotate(-45deg)}
 .js .site-nav{display:none}
 .js .open .site-nav{display:flex}
 .site-nav{flex-direction:column;align-items:center;gap:0;margin-top:18px;border-top:1px solid var(--line)}
 .site-nav a{width:100%;max-width:320px;padding:14px 0;border-bottom:1px solid var(--line);font-size:12.5px}
 .site-nav a[aria-current=page]{color:var(--accent);border-bottom-color:var(--line)}
}

/* Home: the animated garden sits below the header. */
.home .scene{margin-top:clamp(4px,1vw,12px)}
.scene-note{margin:0;padding:18px var(--gutter) 30px;text-align:center}
.text-button{background:none;border:0;border-bottom:1px solid var(--line);padding:4px 0;font-size:12px;letter-spacing:.06em;color:var(--muted);cursor:pointer}
.text-button:hover{color:var(--ink)}

/* Inner pages */
.page{max-width:680px;margin:0 auto;padding:clamp(48px,7vw,84px) var(--gutter) 40px}
.page-title{margin:0 0 18px;text-align:center;font:400 clamp(34px,4.6vw,48px)/1.15 'Playfair Display',Georgia,serif;letter-spacing:-.02em}
.page-intro{margin:0 auto 46px;max-width:540px;text-align:center;color:var(--muted)}
.section{padding:30px 0;border-top:1px solid var(--line)}
.section:last-of-type{border-bottom:1px solid var(--line)}
.section h2{margin:0 0 8px;font:400 24px/1.3 'Playfair Display',Georgia,serif}
.section .label{margin:0 0 6px;font-size:11.5px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--accent)}
.section p{margin:0 0 10px}
.section p:last-child{margin-bottom:0}
.tbd{color:var(--muted);font-style:italic}
.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;margin:0;padding:0;list-style:none}
.gallery img{display:block;width:100%;aspect-ratio:4/5;object-fit:cover}
.gallery:empty{display:none}

.site-foot{padding:28px var(--gutter) 40px;text-align:center;font:italic 15px 'Playfair Display',Georgia,serif;color:var(--muted)}
.site-foot span{font-style:italic;color:var(--accent)}
@media(prefers-reduced-motion:reduce){.menu-button i,.site-nav a{transition:none}}
