/* Guest-side pages only. Builds on shared.css tokens. */
.sec{padding:clamp(36px,7vw,84px) 0}
.sec.tight{padding:clamp(20px,4vw,40px) 0}
.center{text-align:center}
.lede{font-family:var(--serif);font-size:clamp(20px,2.6vw,27px);line-height:1.5;color:var(--fg)}
.sub{color:var(--dim);max-width:56ch}
.center .sub{margin-left:auto;margin-right:auto}
.reveal{opacity:0;transform:translateY(20px);transition:opacity .9s cubic-bezier(.2,.7,.2,1),transform .9s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}

/* hero */
.hero{position:relative;text-align:center;padding:clamp(56px,11vw,130px) 0 clamp(44px,8vw,90px);overflow:hidden}
.hero h1{margin:.12em 0 .1em}
.hero .when{font-family:var(--serif);font-size:clamp(20px,3vw,30px)}
.hero .where{color:var(--dim);margin-top:.3em}
.count{display:inline-flex;align-items:baseline;gap:.5em;margin-top:34px;border:1px solid var(--line);border-radius:999px;padding:.5em 1.4em}
.count b{font-family:var(--serif);font-weight:400;font-size:clamp(34px,5vw,46px);color:var(--clay);line-height:1}
.hero .stars{position:absolute;inset:0;pointer-events:none}
.hero .stars svg{position:absolute;fill:var(--fg);opacity:.5}
.hero .sprig{position:absolute;bottom:-6px;width:clamp(70px,12vw,140px);height:auto;pointer-events:none;opacity:.9}
.hero .sprig.l{left:clamp(0px,3vw,40px);transform:rotate(-8deg)}
.hero .sprig.r{right:clamp(0px,3vw,40px);transform:scaleX(-1) rotate(-8deg)}
@keyframes twinkle{50%{opacity:.15}}
.hero .stars svg{animation:twinkle 6s ease-in-out infinite}
.hero .stars svg:nth-child(2n){animation-duration:9s;animation-delay:-3s}
.hero .stars svg:nth-child(3n){animation-duration:11s;animation-delay:-5s}
@media(prefers-reduced-motion:reduce){.hero .stars svg{animation:none}}
.btn.big{font-size:18px;padding:.85em 1.9em}

/* story + schedule */
.story p{font-family:var(--serif);font-size:clamp(19px,2.2vw,23px);line-height:1.62;margin:0 0 1.1em}
.story .paras p:first-of-type::first-letter{float:left;font-size:3.4em;line-height:.85;padding:.06em .1em 0 0;color:var(--clay)}
.arch{display:block;width:min(420px,86%);height:auto;margin:0 auto 10px}
.sched{list-style:none;margin:28px 0 0;padding:0;border-top:1px solid var(--line)}
.sched li{display:grid;grid-template-columns:7.2em 1fr;gap:16px;padding:20px 0;border-bottom:1px solid var(--line);align-items:baseline}
.sched .t{font-family:var(--serif);font-size:24px;color:var(--clay)}
.sched .w{font-family:var(--serif);font-size:22px}
.sched .w small{display:block;font-family:var(--font);font-size:15px;color:var(--dim);margin-top:2px}
@media(max-width:480px){.sched li{grid-template-columns:5.6em 1fr;gap:10px}.sched .t{font-size:20px}}

/* details */
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px}
.card h3{margin-bottom:.35em}
.card p{margin:.3em 0;color:var(--dim)}
.card p b{color:var(--fg);font-weight:600}
.kv{display:inline-block;background:rgba(169,184,143,.14);border:1px solid rgba(169,184,143,.35);color:var(--sage);border-radius:8px;padding:.1em .55em;font-weight:600;letter-spacing:.06em}
.faq details{border-bottom:1px solid var(--line)}
.faq details:first-child{border-top:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;padding:18px 36px 18px 2px;font-family:var(--serif);font-size:22px;position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:6px;top:50%;transform:translateY(-52%);font:300 28px var(--font);color:var(--clay);transition:transform .25s}
.faq details[open] summary::after{transform:translateY(-52%) rotate(45deg)}
.faq .a{padding:0 2px 20px;color:var(--dim);max-width:62ch}
.reg a{display:block;text-decoration:none}
.reg .card{transition:border-color .2s,transform .2s;height:100%}
.reg a:hover .card{border-color:var(--clay);transform:translateY(-2px)}
.todo{columns:2;column-gap:36px;padding:0;list-style:none;margin:0}
.todo li{break-inside:avoid;padding:10px 0;border-bottom:1px solid var(--line)}
.todo li b{font-family:var(--serif);font-weight:400;font-size:20px;display:block}
.todo li span{color:var(--dim);font-size:15px}
@media(max-width:600px){.todo{columns:1}}

/* rsvp */
.find{position:relative}
.find input{font-size:20px;padding:.85em 1.1em;border-radius:999px}
.hints{margin:12px 2px 0;color:var(--dim);font-size:14px}
.hints button{background:none;border:0;padding:0;color:var(--sage);text-decoration:underline;text-underline-offset:3px;font-weight:600}
.results{margin-top:16px;display:grid;gap:10px}
.res{display:flex;align-items:center;gap:14px;width:100%;text-align:left;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:16px 18px}
.res:hover{border-color:var(--clay)}
.res .who{flex:1;min-width:0;font-family:var(--serif);font-size:21px}
.res .who small{display:block;font-family:var(--font);font-size:14px;color:var(--dim)}
.res .go{color:var(--clay);font-weight:600;font-size:15px;white-space:nowrap}
.none{color:var(--dim);padding:14px 4px}
.note{background:rgba(169,184,143,.12);border:1px solid rgba(169,184,143,.3);border-radius:12px;padding:.7em 1em;color:var(--sage);margin:0 0 20px}
.note.warn{background:rgba(224,128,90,.12);border-color:rgba(224,128,90,.4);color:#f3c4ae}
.mem{border-top:1px solid var(--line);padding:20px 0}
.mem:first-of-type{border-top:0}
.mem h3{font-size:25px;margin-bottom:12px}
.choice{display:flex;gap:10px;flex-wrap:wrap}
.choice label{flex:1 1 200px;position:relative;cursor:pointer}
.choice input{position:absolute;opacity:0;inset:0;cursor:pointer}
.choice span{display:block;text-align:center;border:1px solid var(--line);border-radius:12px;padding:.75em 1em;transition:.2s}
.choice input:checked+span{background:var(--clay);border-color:var(--clay);color:#1a1210;font-weight:620}
.choice input:focus-visible+span{outline:2px solid var(--fg);outline-offset:2px}
.choice input[value=no]:checked+span{background:var(--bg2);border-color:var(--fg);color:var(--fg);font-weight:600}
.mem .meal{margin-top:14px}
.err{color:var(--bad);min-height:1.3em;margin:.4em 0 0;font-size:15px}
.fieldset{border-top:1px solid var(--line);padding-top:22px;margin-top:8px}
.song{margin-bottom:10px}
.thanks{text-align:center;padding:10px 0}
.thanks .big{font-family:var(--serif);font-size:clamp(34px,6vw,56px);line-height:1.1;margin:.2em 0 .3em}
.thanks .box{display:inline-block;text-align:left;margin:22px 0 6px;min-width:min(100%,360px)}
.back{background:none;border:0;color:var(--dim);text-decoration:underline;text-underline-offset:3px;padding:.5em .2em}
.row-acts{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-top:22px}
[hidden]{display:none!important}
/* phones: mode switch on one row, page links on the next, so nothing clips */
@media(max-width:560px){
  .top .wrap{flex-wrap:wrap;justify-content:center;gap:2px 8px;padding-top:8px;padding-bottom:4px;min-height:0}
  .top nav{width:100%;margin-left:0;justify-content:center;overflow:visible}
}
