@font-face{
  font-family:Allura;
  src:url('fonts/allura.woff2') format('woff2');
  font-weight:400;
  font-display:swap
}
@font-face{
  font-family:Cormorant;
  src:url('fonts/cormorant.woff2') format('woff2');
  font-weight:300 700;
  font-display:swap
}
@font-face{
  font-family:Devanagari;
  src:url('fonts/devanagari.woff2') format('woff2');
  font-weight:400 700;
  font-display:swap
}
:root{
  --forest:#173e36;
  --forest-dark:#102d28;
  --ivory:#f7f3e9;
  --paper:#eee8da;
  --gold:#c7a367;
  --gold-light:#e3c68b;
  --ink:#243b32;
  --muted:#5a665c;
  --line:#cfc5ad;
  --display:Allura,cursive;
  --serif:Cormorant,Georgia,serif;
  --body:Georgia,'Times New Roman',serif;
  --space:clamp(1.35rem,5vw,5rem);
  --ease:cubic-bezier(.22,1,.36,1)
}
*{
  box-sizing:border-box
}
html{
  scroll-behavior:smooth;
  scroll-padding-top:5.5rem
}
body{
  margin:0;
  background:var(--ivory);
  color:var(--ink);
  font-family:var(--body);
  font-size:16px;
  line-height:1.7;
  -webkit-font-smoothing:antialiased
}
img{
  max-width:100%;
  height:auto;
  display:block
}
svg{
  display:inline-block;
  width:22px;
  height:22px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.4;
  vertical-align:middle
}
button,input,select,textarea{
  font:inherit;
  color:inherit
}
button,a,input,select,textarea{
  touch-action:manipulation;
  -webkit-tap-highlight-color:#c7a36733
}
button,a{
  min-height:44px
}
button{
  cursor:pointer
}
a{
  color:inherit;
  text-underline-offset:5px
}
p{
  margin:0 0 1.2rem
}
h1,h2,h3{
  font-weight:400;
  margin:0;
  text-wrap:balance
}
h2{
  font-family:var(--serif);
  font-size:clamp(2.5rem,4.6vw,4.6rem);
  line-height:1.08;
  letter-spacing:-.025em
}
h3{
  font-family:var(--serif);
  font-size:1.9rem;
  line-height:1.2
}
button:active,.button:active{
  transform:scale(.98)
}
:focus-visible{
  outline:3px solid var(--gold);
  outline-offset:5px
}
::selection{
  background:var(--gold-light);
  color:var(--forest)
}
[lang=hi]{
  font-family:Devanagari,serif
}
section{
  scroll-margin-top:5rem
}
button:disabled{
  cursor:wait;
  opacity:.65
}
.section-pad{
  padding:clamp(4.5rem,9vw,8.5rem) var(--space)
}
.eyebrow{
  font-family:var(--serif);
  text-transform:uppercase;
  letter-spacing:.16em;
  font-weight:600;
  font-size:.87rem;
  margin-bottom:1.3rem
}
.section-heading{
  text-align:center;
  max-width:760px;
  margin:0 auto 3.8rem
}
.section-heading>p:last-child{
  margin:1.5rem auto 0;
  max-width:43ch;
  color:var(--muted)
}
.button{
  border:1px solid transparent;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.85rem;
  padding:.85rem 1.65rem;
  text-decoration:none;
  background:none;
  border-radius:2px;
  font-family:var(--serif);
  font-size:1.1rem;
  font-weight:600;
  line-height:1.3;
  min-height:52px;
  transition:background-color 160ms,color 160ms,transform 160ms var(--ease)
}
.button-gold{
  background:var(--gold-light);
  color:var(--forest-dark);
  border-color:var(--gold-light)
}
.button-gold:hover{
  background:#f0d9a9
}
.button-outline{
  border-color:var(--forest);
  color:var(--forest);
  background:transparent
}
.button-outline:hover{
  background:var(--forest);
  color:var(--ivory)
}
.text-link{
  border:0;
  background:none;
  padding:.5rem 0;
  display:inline-flex;
  align-items:center;
  gap:.6rem;
  font:600 1.05rem/1.5 var(--serif);
  text-decoration:underline;
  text-underline-offset:5px
}
.text-link:hover{
  color:#82602f
}
.ganesh{
  width:65px;
  height:65px;
  stroke-width:1.4;
  color:var(--gold)
}
.lotus{
  width:68px;
  height:44px;
  color:var(--gold)
}
.branch{
  width:100%;
  height:100%;
  stroke-width:1
}
.ornament{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:1rem;
  margin:1.5rem auto;
  color:var(--gold);
  width:200px
}
.ornament .lotus{
  width:48px;
  height:32px
}
.ornament>span{
  height:1px;
  flex:1;
  background:currentColor
}
.sr-only{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0
}
.skip-link{
  position:fixed;
  top:-100px;
  left:1rem;
  z-index:100;
  background:var(--ivory);
  color:var(--forest);
  padding:1rem
}
.skip-link:focus{
  top:1rem
}
.form{
  max-width:460px;
  width:100%;
  text-align:left
}
.form label,.form legend{
  display:block;
  font-family:var(--serif);
  font-size:1.1rem;
  font-weight:600;
  margin:1rem 0 .4rem
}
.form input:not([type=radio]),.form select,.form textarea{
  width:100%;
  border:1px solid var(--line);
  border-radius:2px;
  background:#fffdf7;
  min-height:50px;
  padding:.65rem .85rem;
  line-height:1.5;
  font-size:16px
}
.form select{
  color:var(--forest);
  background-color:#fffdf7
}
.form textarea{
  resize:vertical;
  max-height:300px
}
.form fieldset{
  border:0;
  padding:0;
  margin:1.3rem 0
}
.form legend{
  padding:0
}
.attendance-options{
  display:flex;
  gap:.6rem
}
.attendance-options>label{
  flex:1;
  display:flex;
  align-items:center;
  gap:.5rem;
  cursor:pointer;
  min-height:52px;
  border:1px solid var(--line);
  padding:.7rem .5rem;
  margin:0;
  font-size:1rem;
  font-family:var(--serif);
  line-height:1.3
}
.attendance-options>label:has(:checked){
  border-color:var(--forest);
  background:#dae2d8
}
.attendance-options input{
  accent-color:var(--forest);
  width:18px;
  height:18px;
  flex-shrink:0
}
.privacy-note{
  font:13px/1.6 var(--body);
  margin:1rem 0 1.3rem;
  color:var(--muted)
}
.form-status{
  margin:1rem 0 0;
  min-height:1.7em;
  font-size:.95rem;
  overflow-wrap:anywhere
}
.form-status[data-error=true]{
  color:#8b2929
}
.form-status[data-error=false]{
  color:var(--forest)
}
.form .honeypot{
  position:absolute;
  left:-9999px;
  width:1px;
  height:1px;
  overflow:hidden
}
.sample-note,.map-note{
  font-size:.8rem;
  color:var(--muted);
  text-align:center;
  max-width:70ch;
  margin:1.5rem auto
}
.blessing-dialog{
  border:1px solid var(--gold);
  background:var(--ivory);
  color:var(--forest);
  padding:2.5rem;
  width:min(560px,calc(100vw - 2rem));
  max-height:calc(100dvh - 2rem);
  overscroll-behavior:contain
}
.blessing-dialog::backdrop{
  background:#081f19c4
}
.blessing-dialog h2{
  font-size:2.6rem;
  margin:.8rem 0
}
.dialog-close{
  position:absolute;
  right:.7rem;
  top:.6rem;
  border:0;
  background:none;
  font-size:1.8rem;
  width:44px
}
.floating-tools{
  position:fixed;
  z-index:15;
  right:1rem;
  bottom:max(1rem,env(safe-area-inset-bottom));
  display:flex;
  gap:.3rem;
  padding:.2rem;
  background:var(--ivory);
  border:1px solid var(--line);
  box-shadow:0 2px 15px #102d2814
}
.floating-tools button{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:.35rem;
  border:0;
  background:none;
  color:var(--forest);
  min-width:44px;
  padding:.55rem .6rem;
  line-height:1.2
}
.floating-tools button:hover{
  background:var(--paper)
}
.floating-tools button span{
  font-family:var(--serif);
  font-size:.9rem
}
.floating-tools svg{
  width:18px;
  height:18px
}
.floating-tools button[aria-pressed=true]{
  background:#dae2d8
}
.motion-paused *,.motion-paused *::before,.motion-paused *::after{
  animation-play-state:paused!important
}
html.motion-paused{
  scroll-behavior:auto
}
.form-status:empty{
  display:none
}
@media(max-width:600px){
  .section-pad{
    padding:4rem 1.4rem
  }
  .section-heading{
    margin-bottom:2.5rem
  }
  .eyebrow{
    font-size:.78rem;
    letter-spacing:.11em
  }
  .button{
    padding:.85rem 1.25rem
  }
  .blessing-dialog{
    padding:2rem 1.4rem
  }
  .floating-tools{
    right:.65rem;
    bottom:max(.65rem,env(safe-area-inset-bottom))
  }
  .floating-tools button span{
    display:none
  }
  .floating-tools button{
    padding:.5rem
  }
}
@media(prefers-reduced-motion:reduce){
  html{
    scroll-behavior:auto
  }
  *,*::before,*::after{
    animation:none!important;
    transition:none!important
  }
  .petals{
    display:none!important
  }
}
:root{
  --body:Devanagari,Georgia,serif
}

.demo-toolbar{display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:.45rem 1rem;background:#fbf6ec;color:#4b343b;font:14px/1.4 Georgia,serif;border-bottom:1px solid #dacdbc}.demo-toolbar a{display:flex;align-items:center;min-height:44px}.demo-toolbar span{text-align:right}@media(max-width:500px){.demo-toolbar{font-size:12px}.demo-toolbar span{max-width:45%}}

/* A completed date reveal is a message, not a pending action. */
#reveal-date:disabled{cursor:default;opacity:1;text-decoration:none}
