/* ==========================================================================
   Sree Narayana Guru Samajam, Mettupalayam
   5th Anniversary & Kudumba Sangamam — shared stylesheet
   Dark ceremonial threshold · cream letterpress interior
   ========================================================================== */

:root{
  /* Dark — the lamp-lit doorway */
  --ink:#1B0708; --ink-2:#2E0C0E; --ink-3:#3E1214;
  --gold:#D9A94E; --gold-lt:#F3DCA4; --gold-dp:#9C7327;
  --marigold:#F2A227; --marigold-dp:#D9531E;
  --cream-on-dark:#F0E3C8; --cream-dim:#C4AE86;

  /* Paper — the invitation in hand */
  --paper:#F8F1E0; --paper-lt:#FDF9F0; --paper-deep:#F1E4C8; --paper-edge:#EADFC6;
  --maroon:#6E1114; --maroon-lt:#8E2A2D; --maroon-pale:#C89A96;
  --text:#33201B; --text-soft:#6B534A; --rule:#C9AE79;

  --shadow-md:0 10px 28px rgba(30,8,8,.10);
  --shadow-lg:0 24px 60px rgba(30,8,8,.16);

  --maxw:1080px;
  --pad:clamp(18px,5vw,40px);
  --bar:58px;                       /* top bar height */

  /* ---- Ornament layer -------------------------------------------------
     The printed invitation is framed with a notched double rule and corner
     diamonds. These SVGs carry that language into the components, used as
     9-slice border-image so the corners stay crisp at any card size.      */

  /* notched double-rule frame, maroon outer + gold inner */
  --frame: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120' fill='none'%3E%3Cpath d='M16 3H104L117 16V104L104 117H16L3 104V16Z' stroke='%236E1114' stroke-width='5'/%3E%3Cpath d='M22 10H98L110 22V98L98 110H22L10 98V22Z' stroke='%23C9AE79' stroke-width='2.2'/%3E%3Cg fill='%236E1114'%3E%3Cpath d='M9.5 5.6 13.4 9.5 9.5 13.4 5.6 9.5Z'/%3E%3Cpath d='M110.5 5.6 114.4 9.5 110.5 13.4 106.6 9.5Z'/%3E%3Cpath d='M9.5 106.6 13.4 110.5 9.5 114.4 5.6 110.5Z'/%3E%3Cpath d='M110.5 106.6 114.4 110.5 110.5 114.4 106.6 110.5Z'/%3E%3C/g%3E%3C/svg%3E");

  /* same frame lit gold — hover / active state */
  --frame-gold: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120' fill='none'%3E%3Cpath d='M16 3H104L117 16V104L104 117H16L3 104V16Z' stroke='%23A8802F' stroke-width='5'/%3E%3Cpath d='M22 10H98L110 22V98L98 110H22L10 98V22Z' stroke='%23D9A94E' stroke-width='2.6'/%3E%3Cg fill='%23A8802F'%3E%3Cpath d='M9.5 5.6 13.4 9.5 9.5 13.4 5.6 9.5Z'/%3E%3Cpath d='M110.5 5.6 114.4 9.5 110.5 13.4 106.6 9.5Z'/%3E%3Cpath d='M9.5 106.6 13.4 110.5 9.5 114.4 5.6 110.5Z'/%3E%3Cpath d='M110.5 106.6 114.4 110.5 110.5 114.4 106.6 110.5Z'/%3E%3C/g%3E%3C/svg%3E");

  /* lighter version for secondary cards */
  --frame-soft: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120' fill='none'%3E%3Cpath d='M14 3H106L117 14V106L106 117H14L3 106V14Z' stroke='%23C9AE79' stroke-width='3.2'/%3E%3Cpath d='M20 9H100L111 20V100L100 111H20L9 100V20Z' stroke='%23EADFC6' stroke-width='2'/%3E%3Cg fill='%23C9AE79'%3E%3Cpath d='M8.8 5.4 12.4 9 8.8 12.6 5.2 9Z'/%3E%3Cpath d='M111.2 5.4 114.8 9 111.2 12.6 107.6 9Z'/%3E%3Cpath d='M8.8 107.4 12.4 111 8.8 114.6 5.2 111Z'/%3E%3Cpath d='M111.2 107.4 114.8 111 111.2 114.6 107.6 111Z'/%3E%3C/g%3E%3C/svg%3E");

  /* kolam — four-petal motif on a dotted lattice, tiles seamlessly */
  --kolam: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='104' height='104' fill='none'%3E%3Cg stroke='%236E1114' stroke-opacity='.030' stroke-width='.9'%3E%3Cpath d='M52 22C62 32 62 72 52 82 42 72 42 32 52 22Z'/%3E%3Cpath d='M22 52C32 42 72 42 82 52 72 62 32 62 22 52Z'/%3E%3C/g%3E%3Cg fill='%236E1114' fill-opacity='.032'%3E%3Ccircle cx='52' cy='52' r='2'/%3E%3Ccircle cx='0' cy='0' r='1.5'/%3E%3Ccircle cx='104' cy='0' r='1.5'/%3E%3Ccircle cx='0' cy='104' r='1.5'/%3E%3Ccircle cx='104' cy='104' r='1.5'/%3E%3C/g%3E%3C/svg%3E");

  /* lotus divider, paper and dark variants */
  --lotus: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='38' height='18'%3E%3Cg fill='%23C9AE79'%3E%3Cpath d='M19 2 23 9 19 16 15 9Z'/%3E%3Cpath d='M9 9c2.8-3.4 5.6-3.4 5.6 0 0 3.4-2.8 3.4-5.6 0Z' opacity='.72'/%3E%3Cpath d='M29 9c-2.8-3.4-5.6-3.4-5.6 0 0 3.4 2.8 3.4 5.6 0Z' opacity='.72'/%3E%3Ccircle cx='3' cy='9' r='1.6' opacity='.5'/%3E%3Ccircle cx='35' cy='9' r='1.6' opacity='.5'/%3E%3C/g%3E%3C/svg%3E");
  --lotus-gold: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='38' height='18'%3E%3Cg fill='%23D9A94E'%3E%3Cpath d='M19 2 23 9 19 16 15 9Z'/%3E%3Cpath d='M9 9c2.8-3.4 5.6-3.4 5.6 0 0 3.4-2.8 3.4-5.6 0Z' opacity='.72'/%3E%3Cpath d='M29 9c-2.8-3.4-5.6-3.4-5.6 0 0 3.4 2.8 3.4 5.6 0Z' opacity='.72'/%3E%3Ccircle cx='3' cy='9' r='1.6' opacity='.5'/%3E%3Ccircle cx='35' cy='9' r='1.6' opacity='.5'/%3E%3C/g%3E%3C/svg%3E");

  --frame-dark: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120' fill='none'%3E%3Cpath d='M16 3H104L117 16V104L104 117H16L3 104V16Z' stroke='%23A8802F' stroke-width='5'/%3E%3Cpath d='M22 10H98L110 22V98L98 110H22L10 98V22Z' stroke='%23D9A94E' stroke-width='2.2' stroke-opacity='.5'/%3E%3Cg fill='%23D9A94E'%3E%3Cpath d='M9.5 5.6 13.4 9.5 9.5 13.4 5.6 9.5Z'/%3E%3Cpath d='M110.5 5.6 114.4 9.5 110.5 13.4 106.6 9.5Z'/%3E%3Cpath d='M9.5 106.6 13.4 110.5 9.5 114.4 5.6 110.5Z'/%3E%3Cpath d='M110.5 106.6 114.4 110.5 110.5 114.4 106.6 110.5Z'/%3E%3C/g%3E%3C/svg%3E");

  /* temple-arch crest that sits at the head of each door card */
  --crest: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='96' height='38' fill='none'%3E%3Cpath d='M48 8C41 14 39 22 48 31 57 22 55 14 48 8Z' fill='%236E1114' fill-opacity='.88'/%3E%3Cpath d='M48 31C39 31 32 27 26 20 35 17 44 22 48 31Z' fill='%23C9AE79' fill-opacity='.85'/%3E%3Cpath d='M48 31C57 31 64 27 70 20 61 17 52 22 48 31Z' fill='%23C9AE79' fill-opacity='.85'/%3E%3Cpath d='M48 0 51.4 5 48 10 44.6 5Z' fill='%23A8802F'/%3E%3Cpath d='M4 33H92' stroke='%23C9AE79' stroke-width='1.1'/%3E%3Ccircle cx='4' cy='33' r='1.8' fill='%23C9AE79'/%3E%3Ccircle cx='92' cy='33' r='1.8' fill='%23C9AE79'/%3E%3C/svg%3E");
}

*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--bar) + 14px);-webkit-text-size-adjust:100%;}

body{
  font-family:'Cormorant Garamond',Georgia,serif;
  font-size:clamp(17px,1.15vw,19px);
  line-height:1.62;
  color:var(--text);
  background:var(--paper);
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img{max-width:100%;display:block;}
a{color:inherit;}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:3px;}

.wrap{max-width:var(--maxw);margin:0 auto;padding-inline:var(--pad);}
.grain{
  position:fixed;inset:0;z-index:80;pointer-events:none;opacity:.5;mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)' opacity='.055'/%3E%3C/svg%3E");
}
.skip{position:absolute;left:-9999px;top:0;z-index:200;background:var(--maroon);color:#fff;
  padding:12px 20px;font-family:'Karla',sans-serif;font-size:14px;text-decoration:none;}
.skip:focus{left:12px;top:12px;}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}

/* ---------- typographic furniture ---------- */
.eyebrow{font-family:'Karla',system-ui,sans-serif;font-size:11px;font-weight:600;
  letter-spacing:.32em;text-transform:uppercase;color:var(--maroon-lt);}
.zone-dark .eyebrow{color:var(--cream-dim);}

h2.sec-title{font-family:'Marcellus',serif;font-weight:400;line-height:1.12;
  font-size:clamp(28px,4.4vw,44px);color:var(--maroon);margin-top:10px;}
.sec-lede{max-width:56ch;margin:14px auto 0;color:var(--text-soft);font-style:italic;
  font-size:clamp(16.5px,1.6vw,19px);}
.sec-head{text-align:center;margin-bottom:clamp(30px,4.4vw,50px);}

.orn{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:20px;}
.orn i{display:block;height:1px;width:clamp(38px,9vw,84px);
  background:linear-gradient(90deg,transparent,var(--rule));}
.orn i+i{background:linear-gradient(90deg,var(--rule),transparent);}
.orn b{width:38px;height:18px;flex:none;background:var(--lotus) center/contain no-repeat;}
.zone-dark .orn i{background:linear-gradient(90deg,transparent,var(--gold-dp));}
.zone-dark .orn i+i{background:linear-gradient(90deg,var(--gold-dp),transparent);}
.zone-dark .orn b{background:var(--lotus-gold) center/contain no-repeat;
  filter:drop-shadow(0 0 8px rgba(217,169,78,.5));}

/* reveal — only ever hidden while JS runs (see site.js) */
.js .rv{opacity:0;transform:translateY(20px);
  transition:opacity .8s cubic-bezier(.22,.7,.24,1),transform .8s cubic-bezier(.22,.7,.24,1);}
.js .rv.in{opacity:1;transform:none;}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;
  text-decoration:none;cursor:pointer;border:1px solid transparent;
  font-family:'Karla',sans-serif;font-size:13.5px;font-weight:600;letter-spacing:.05em;
  padding:12px 24px;border-radius:999px;
  transition:transform .22s cubic-bezier(.22,.7,.24,1),box-shadow .22s,background .22s,color .22s;}
.btn:hover,.btn:focus-visible{transform:translateY(-2px);}
.btn-gold{background:linear-gradient(180deg,var(--gold-lt),var(--gold-dp));color:#33100E;
  box-shadow:0 8px 22px rgba(217,169,78,.3);}
.btn-gold:hover{box-shadow:0 12px 28px rgba(217,169,78,.44);}
.btn-ghost{background:rgba(240,227,200,.06);color:var(--cream-on-dark);border-color:rgba(217,169,78,.44);}
.btn-ghost:hover{background:rgba(217,169,78,.16);color:var(--gold-lt);}
.btn-maroon{background:var(--maroon);color:var(--paper-lt);box-shadow:0 8px 20px rgba(110,17,20,.24);}
.btn-maroon:hover{background:var(--maroon-lt);}
.btn-outline{background:transparent;color:var(--maroon);border-color:var(--maroon-pale);}
.btn-outline:hover{background:rgba(110,17,20,.06);border-color:var(--maroon);}

/* ==========================================================================
   TOP BAR
   ========================================================================== */
.topbar{
  position:fixed;top:0;left:0;right:0;z-index:70;height:var(--bar);
  display:flex;align-items:center;gap:16px;padding:0 var(--pad);
  background:rgba(24,7,8,.93);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid rgba(217,169,78,.24);
}
.topbar.reveal{transform:translateY(-104%);transition:transform .45s cubic-bezier(.22,.7,.24,1);}
.topbar.reveal.show{transform:none;}
.tb-brand{display:flex;align-items:center;gap:10px;flex:none;text-decoration:none;}
.tb-brand img{width:32px;height:32px;border-radius:50%;background:#fff;}
.tb-brand span{font-family:'Marcellus',serif;font-size:13.5px;color:var(--gold-lt);
  letter-spacing:.05em;white-space:nowrap;line-height:1.15;}
.tb-brand em{display:block;font-style:normal;font-family:'Karla',sans-serif;font-size:9px;
  letter-spacing:.24em;text-transform:uppercase;color:var(--cream-dim);}
.tb-nav{display:flex;gap:2px;margin-left:auto;overflow-x:auto;scrollbar-width:none;}
.tb-nav::-webkit-scrollbar{display:none;}
.tb-nav a{font-family:'Karla',sans-serif;font-size:12.5px;font-weight:500;letter-spacing:.09em;
  text-transform:uppercase;text-decoration:none;color:var(--cream-dim);
  padding:8px 13px;border-radius:6px;white-space:nowrap;transition:color .22s,background .22s;}
.tb-nav a:hover,.tb-nav a:focus-visible{color:var(--gold-lt);background:rgba(217,169,78,.12);}
.tb-nav a.on{color:var(--gold-lt);background:rgba(217,169,78,.15);}
@media(max-width:600px){ .tb-brand span{display:none;} .topbar{gap:8px;padding:0 12px;} }

/* ==========================================================================
   HERO (index only) — compact: key facts must sit in the first screen
   ========================================================================== */
.hero{
  position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;padding:78px 20px 40px;color:var(--cream-on-dark);
  background:radial-gradient(126% 92% at 50% 2%, #4A1517 0%, #310D10 34%, #210809 66%, #170506 100%);
  overflow:hidden;isolation:isolate;
}
.hero::after{content:'';position:absolute;inset:0;z-index:1;pointer-events:none;
  background:radial-gradient(120% 96% at 50% 42%, transparent 54%, rgba(10,3,3,.7) 100%);}
#embers{position:absolute;inset:0;z-index:0;pointer-events:none;}
#garland{position:absolute;top:0;left:0;width:100%;height:150px;z-index:2;pointer-events:none;}
.hero-inner{position:relative;z-index:3;display:flex;flex-direction:column;align-items:center;
  width:100%;max-width:900px;}

.lamp{position:absolute;top:0;z-index:2;width:clamp(32px,6vw,54px);pointer-events:none;
  transform-origin:50% 0;animation:sway 6.5s ease-in-out infinite;}
.lamp.l{left:clamp(8px,4vw,64px);} .lamp.r{right:clamp(8px,4vw,64px);animation-delay:-3.2s;}
@keyframes sway{0%,100%{transform:rotate(-2.2deg);}50%{transform:rotate(2.2deg);}}
.lamp .fl{transform-origin:50% 100%;animation:flick 1.6s ease-in-out infinite alternate;}
@keyframes flick{0%{transform:scaleY(1);opacity:.9;}50%{transform:scaleY(1.18) scaleX(.9);opacity:1;}
  100%{transform:scaleY(.96) scaleX(1.07);opacity:.97;}}

.emblem{position:relative;width:clamp(84px,13vw,108px);aspect-ratio:1;margin-bottom:14px;}
.emblem .halo{position:absolute;inset:-20px;border-radius:50%;
  background:radial-gradient(circle,rgba(217,169,78,.44) 0%,rgba(217,169,78,0) 68%);
  animation:breathe 4s ease-in-out infinite;}
@keyframes breathe{0%,100%{opacity:.45;transform:scale(.95);}50%{opacity:.95;transform:scale(1.07);}}
.emblem .ring{position:absolute;inset:-5px;border-radius:50%;
  background:conic-gradient(from 0deg,var(--gold-dp),var(--gold-lt),var(--gold-dp),var(--gold-lt),var(--gold-dp));
  -webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 2px),#000 calc(100% - 2px));
          mask:radial-gradient(farthest-side,transparent calc(100% - 2px),#000 calc(100% - 2px));
  animation:spin 26s linear infinite;}
@keyframes spin{to{transform:rotate(360deg);}}
.emblem img{position:relative;width:100%;height:100%;border-radius:50%;background:#fff;
  object-fit:contain;box-shadow:0 0 30px rgba(217,169,78,.34);}

.regd{font-family:'Karla',sans-serif;font-size:10px;font-weight:500;letter-spacing:.28em;
  text-transform:uppercase;color:var(--cream-dim);}
.org{font-family:'Marcellus',serif;line-height:1.08;margin-top:9px;
  font-size:clamp(28px,5.6vw,52px);letter-spacing:.012em;
  background:linear-gradient(178deg,#FDF3D6 6%,var(--gold) 56%,var(--gold-dp) 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;}
.org-place{font-family:'Marcellus',serif;color:var(--cream-on-dark);margin-top:7px;
  font-size:clamp(11px,2.3vw,14px);letter-spacing:.44em;padding-left:.44em;}

.celebrating{font-family:'Great Vibes',cursive;color:var(--gold-lt);line-height:1;margin-top:16px;
  font-size:clamp(25px,5.4vw,40px);text-shadow:0 2px 24px rgba(217,169,78,.34);}
.fifth{display:inline-flex;align-items:flex-start;justify-content:center;gap:9px;}
.fifth .n{font-family:'Cormorant Garamond',serif;font-weight:700;line-height:.9;
  font-size:clamp(52px,12.5vw,96px);
  background:linear-gradient(176deg,#FFEFC0 0%,#F0A83F 46%,#D9531E 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  filter:drop-shadow(0 3px 18px rgba(217,83,30,.32));}
.fifth .n sup{font-size:.3em;top:-.9em;}
.fifth .word{font-family:'Marcellus',serif;align-self:flex-end;margin-bottom:.18em;
  font-size:clamp(22px,5.8vw,44px);color:var(--cream-on-dark);}
.amp{font-family:'Great Vibes',cursive;color:var(--gold);font-size:clamp(21px,4.6vw,32px);line-height:1.15;}
.sangamam{font-family:'Marcellus',serif;color:var(--cream-on-dark);line-height:1.06;
  font-size:clamp(23px,5.8vw,44px);}

.datebar{display:inline-flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px;
  margin-top:20px;max-width:100%;text-align:center;
  font-family:'Karla',sans-serif;font-size:clamp(12.5px,2.7vw,15px);font-weight:600;
  letter-spacing:.04em;color:#33100E;padding:10px 24px;border-radius:999px;
  background:linear-gradient(180deg,var(--gold-lt),var(--gold) 58%,var(--gold-dp));
  box-shadow:0 10px 26px rgba(217,169,78,.26);}
.datebar .nb{white-space:nowrap;}
@media(max-width:420px){ .datebar{padding:9px 18px;gap:5px;} .datebar .dot{display:none;} }

.hero-venue{margin-top:12px;font-size:clamp(16px,2.3vw,20px);}
.hero-venue b{font-family:'Marcellus',serif;font-weight:400;color:var(--gold-lt);}
.hero-venue span{display:block;font-size:.82em;color:var(--cream-dim);font-style:italic;}

.cta{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-top:20px;}

/* countdown — compact strip, not four big cards */
.count{display:flex;justify-content:center;align-items:stretch;gap:0;margin-top:22px;
  border:1px solid rgba(217,169,78,.3);border-radius:12px;overflow:hidden;
  background:linear-gradient(180deg,rgba(78,26,24,.45),rgba(32,11,11,.45));backdrop-filter:blur(3px);}
.count .unit{padding:9px clamp(11px,3.4vw,20px);text-align:center;}
.count .unit+.unit{border-left:1px solid rgba(217,169,78,.2);}
.count .n{font-family:'Cormorant Garamond',serif;font-weight:700;line-height:1;
  font-size:clamp(22px,5vw,30px);font-variant-numeric:tabular-nums;
  background:linear-gradient(180deg,#FDF3D6,var(--gold));
  -webkit-background-clip:text;background-clip:text;color:transparent;}
.count .l{font-family:'Karla',sans-serif;font-size:8.5px;font-weight:500;letter-spacing:.18em;
  text-transform:uppercase;color:var(--cream-dim);margin-top:5px;}
.count.done{display:block;padding:12px 22px;font-family:'Great Vibes',cursive;
  font-size:clamp(24px,5vw,34px);color:var(--gold-lt);}

.threshold{height:70px;background:linear-gradient(180deg,#170506,var(--paper));}

/* ==========================================================================
   SLIM PAGE HEADER (sub-pages)
   ========================================================================== */
.phead{
  margin-top:var(--bar);padding:clamp(44px,6.5vw,72px) var(--pad) clamp(34px,5vw,52px);
  text-align:center;color:var(--cream-on-dark);position:relative;overflow:hidden;
  background:radial-gradient(120% 150% at 50% 0%, #4A1517 0%, #2B0B0D 46%, #1B0708 100%);
}
.phead::before{content:'';position:absolute;inset:0;opacity:.45;pointer-events:none;
  background:repeating-linear-gradient(135deg,transparent 0 16px,rgba(217,169,78,.04) 16px 32px);}
.phead .in{position:relative;}
.phead .kick{font-family:'Karla',sans-serif;font-size:10px;font-weight:600;letter-spacing:.3em;
  text-transform:uppercase;color:var(--gold);}
.phead h1{font-family:'Marcellus',serif;font-weight:400;line-height:1.1;margin-top:12px;
  font-size:clamp(31px,6vw,54px);
  background:linear-gradient(178deg,#FDF3D6 8%,var(--gold) 58%,var(--gold-dp) 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;}
.phead .sub{margin-top:12px;color:var(--cream-dim);font-style:italic;
  font-size:clamp(16px,2vw,19px);max-width:54ch;margin-inline:auto;}

/* ==========================================================================
   PAPER SECTIONS
   ========================================================================== */
section.paper{padding:clamp(52px,7.5vw,88px) 0;}
section.paper.alt{background:var(--paper-lt);}
section.paper.deep{background:var(--paper-deep);}
/* a gold hairline between every band, so the breaks read even when two
   cream tones sit close together */
section.paper + section.paper,
section.paper + section.highlights,
section.highlights + section.paper{
  border-top:1px solid rgba(168,128,47,.28);
}
section.paper.deep{box-shadow:inset 0 1px 0 rgba(168,128,47,.16),
                              inset 0 -1px 0 rgba(168,128,47,.16);}
section.paper.tight{padding:clamp(34px,5vw,54px) 0;}

.frame{position:relative;
  padding:clamp(24px,4.2vw,46px);
  border:17px solid transparent;
  border-image:var(--frame) 44 / 17px / 0 stretch;
  background:var(--kolam) 0 0/104px 104px, var(--paper-lt);
  background-clip:padding-box;
  filter:drop-shadow(0 10px 26px rgba(30,8,8,.10));}

/* facts strip */
.facts{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(10px,1.6vw,16px);}
.fact{position:relative;padding:clamp(22px,3.2vw,32px) 16px;text-align:center;
  border:13px solid transparent;
  border-image:var(--frame-soft) 44 / 13px / 0 stretch;
  background:var(--kolam) 0 0/104px 104px, var(--paper-lt);
  background-clip:padding-box;}
.fact .ico{position:relative;}
.fact::before{content:'';position:absolute;left:50%;top:6px;transform:translateX(-50%);
  width:30px;height:1px;background:linear-gradient(90deg,transparent,var(--rule),transparent);}
.fact .ico{color:var(--maroon-lt);margin:0 auto 10px;}
.fact .k{font-family:'Karla',sans-serif;font-size:9.5px;font-weight:600;letter-spacing:.24em;
  text-transform:uppercase;color:var(--text-soft);}
.fact .v{font-family:'Marcellus',serif;font-size:clamp(18px,2.4vw,24px);color:var(--maroon);
  margin-top:7px;line-height:1.22;}
.fact .s{font-size:15px;color:var(--text-soft);font-style:italic;margin-top:2px;}
@media(max-width:720px){.facts{grid-template-columns:1fr;}}

.intro{text-align:center;max-width:60ch;margin:0 auto clamp(28px,4vw,42px);
  font-size:clamp(17.5px,1.8vw,20.5px);color:var(--text);}
.intro b{font-family:'Marcellus',serif;font-weight:400;color:var(--maroon);}

.actions{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;margin-top:clamp(24px,3.4vw,34px);}

/* ==========================================================================
   DOORS — the two ways onward from the invitation
   ========================================================================== */
.doors{display:grid;gap:clamp(16px,2.4vw,22px);grid-template-columns:repeat(2,1fr);}
@media(max-width:720px){.doors{grid-template-columns:1fr;}}
.door{
  position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;
  text-decoration:none;
  padding:clamp(30px,4vw,44px) clamp(24px,3.4vw,38px) clamp(28px,3.6vw,40px);
  border:15px solid transparent;
  border-image:var(--frame) 44 / 15px / 0 stretch;
  background:
    var(--kolam) 0 0/104px 104px,
    radial-gradient(120% 90% at 50% 0%, #FFFDF6 0%, var(--paper-lt) 62%);
  background-clip:padding-box;
  filter:drop-shadow(0 8px 20px rgba(30,8,8,.10));
  transition:transform .34s cubic-bezier(.22,.7,.24,1),filter .34s,border-image-source .34s;
}
/* temple-arch crest at the head of the card */
.door::before{
  content:'';display:block;width:96px;height:38px;flex:none;margin-bottom:15px;
  background:var(--crest) center/contain no-repeat;
  transition:transform .34s cubic-bezier(.22,.7,.24,1),opacity .34s;opacity:.9;
}
/* hairline that draws itself under the heading on hover */
.door::after{content:'';position:absolute;left:50%;bottom:clamp(20px,2.6vw,28px);
  width:0;height:1px;background:linear-gradient(90deg,transparent,var(--gold-dp),transparent);
  transform:translateX(-50%);transition:width .5s cubic-bezier(.22,.7,.24,1);}
.door:hover,.door:focus-visible{transform:translateY(-5px);
  filter:drop-shadow(0 18px 34px rgba(30,8,8,.17));
  border-image-source:var(--frame-gold);}
.door:hover::before,.door:focus-visible::before{transform:scale(1.09);opacity:1;}
.door:hover::after,.door:focus-visible::after{width:62%;}
.door .dnum{font-family:'Karla',sans-serif;font-size:10px;font-weight:600;letter-spacing:.3em;
  text-transform:uppercase;color:var(--maroon-lt);}
.door h3{font-family:'Marcellus',serif;font-weight:400;line-height:1.14;margin-top:9px;
  font-size:clamp(25px,3.6vw,36px);color:var(--maroon);}
.door p{max-width:34ch;}
.door p{margin-top:10px;color:var(--text-soft);font-style:italic;font-size:16.5px;}
.door .go{display:inline-flex;align-items:center;gap:8px;margin-top:auto;padding-top:20px;
  font-family:'Karla',sans-serif;font-size:12.5px;font-weight:600;letter-spacing:.14em;
  text-transform:uppercase;color:var(--maroon);}
.door .go svg{transition:transform .3s cubic-bezier(.22,.7,.24,1);}
.door:hover .go svg,.door:focus-visible .go svg{transform:translateX(5px);}

/* ==========================================================================
   SCHEDULE — compact table with on-demand detail
   ========================================================================== */
.sched{max-width:900px;margin:0 auto;
  border:14px solid transparent;
  border-image:var(--frame-soft) 44 / 14px / 0 stretch;
  background:var(--kolam) 0 0/104px 104px, var(--paper-lt);
  background-clip:padding-box;
  filter:drop-shadow(0 8px 20px rgba(30,8,8,.07));}
.srow{
  position:relative;display:grid;align-items:baseline;
  grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);
  gap:clamp(10px,2.2vw,26px);width:100%;text-align:left;
  padding:clamp(13px,1.9vw,17px) clamp(16px,2.6vw,26px);
  background:none;border:0;border-top:1px solid var(--paper-edge);margin:0;
  font:inherit;color:inherit;
}
.sched > .srow:first-child{border-top:0;}
.srow[data-detail]{cursor:pointer;}
.srow[data-detail]:hover,.srow[data-detail]:focus-visible{background:#FFFBF2;}
.srow .s-item{font-family:'Karla',sans-serif;font-size:11px;font-weight:600;letter-spacing:.15em;
  text-transform:uppercase;color:var(--maroon-lt);line-height:1.5;}
.srow .s-who{font-family:'Marcellus',serif;font-size:clamp(17px,2.1vw,20.5px);color:var(--text);
  line-height:1.28;}
.srow .s-who em{font-style:italic;font-family:'Cormorant Garamond',serif;color:var(--text-soft);
  font-size:.88em;}
.srow .s-time{display:block;font-family:'Cormorant Garamond',serif;font-style:italic;
  font-size:14.5px;color:var(--text-soft);letter-spacing:0;text-transform:none;margin-top:3px;}

/* marker showing a row has more behind it */
.srow .s-more{position:absolute;right:10px;top:calc(50% - 7px);width:14px;height:14px;
  color:var(--rule);transition:transform .28s,color .28s;}
.srow[aria-expanded="true"] .s-more{transform:rotate(180deg);color:var(--maroon);}

/* the detail itself — hidden until asked for */
.s-detail{
  grid-column:1 / -1;overflow:hidden;
  max-height:0;opacity:0;
  transition:max-height .34s cubic-bezier(.22,.7,.24,1),opacity .26s,margin-top .34s;
}
.s-detail .box{padding:12px 15px;margin-top:10px;background:#FFF7E8;
  border-left:2px solid var(--maroon);font-size:16.5px;color:var(--text);line-height:1.5;}
.s-detail .box b{font-family:'Marcellus',serif;font-weight:400;color:var(--maroon);}
.s-detail .box span{display:block;font-style:italic;color:var(--text-soft);font-size:.92em;margin-top:2px;}
.srow[aria-expanded="true"] .s-detail{max-height:260px;opacity:1;}

/* desktop: hovering or focusing also reveals, as a preview */
@media(hover:hover) and (pointer:fine){
  .srow[data-detail]:hover .s-detail,
  .srow[data-detail]:focus-visible .s-detail{max-height:260px;opacity:1;}
}

/* interval rows read differently */
.srow.break{background:#F4EAD6;}
.srow.break .s-who{font-style:italic;color:var(--maroon-lt);}
.srow.open{background:linear-gradient(90deg,#FFF6E2,var(--paper-lt));}

@media(max-width:620px){
  .srow{grid-template-columns:1fr;gap:3px;padding-right:34px;}
  .srow .s-more{top:16px;}
}

.sched-note{text-align:center;margin-top:16px;font-size:15px;font-style:italic;color:var(--text-soft);}

/* ==========================================================================
   GUESTS
   ========================================================================== */
.guests{display:grid;gap:clamp(14px,2.2vw,20px);grid-template-columns:repeat(2,1fr);}
@media(max-width:760px){.guests{grid-template-columns:1fr;}}
.guest{position:relative;display:flex;flex-direction:column;
  padding:clamp(24px,3.2vw,34px);
  border:13px solid transparent;
  border-image:var(--frame-soft) 44 / 13px / 0 stretch;
  background:var(--kolam) 0 0/104px 104px,
             linear-gradient(178deg,#FFFDF7,var(--paper-lt));
  background-clip:padding-box;
  filter:drop-shadow(0 7px 18px rgba(30,8,8,.08));}
.guest::before{content:'';position:absolute;left:0;right:0;top:0;height:3px;
  background:linear-gradient(90deg,var(--maroon),var(--maroon-lt),var(--maroon));
  transform:scaleX(0);transform-origin:50% 50%;
  transition:transform .45s cubic-bezier(.22,.7,.24,1);}
.guest{transition:transform .34s cubic-bezier(.22,.7,.24,1),filter .34s;}
.guest:hover,.guest:focus-within{transform:translateY(-7px);
  filter:drop-shadow(0 18px 32px rgba(30,8,8,.16));}
.guest:hover::before,.guest:focus-within::before{transform:scaleX(1);}
.guest.lead::before{transform:scaleX(1);}
.guest.lead{grid-column:1 / -1;text-align:center;align-items:center;
  background:linear-gradient(178deg,#FFFBF2,var(--paper-lt));}
.guest .role{font-family:'Karla',sans-serif;font-size:10px;font-weight:600;letter-spacing:.24em;
  text-transform:uppercase;color:var(--maroon-lt);}
.guest .nm{font-family:'Marcellus',serif;color:var(--maroon);line-height:1.2;margin-top:9px;
  font-size:clamp(21px,2.9vw,29px);}
.guest.lead .nm{font-size:clamp(26px,4.2vw,40px);}
.guest .desig{margin-top:7px;font-size:16.5px;}
.guest .org2{color:var(--text-soft);font-style:italic;font-size:15.5px;}
.guest .lamp-ico{color:var(--rule);margin-bottom:12px;}

/* ==========================================================================
   SHOW / CULTURAL
   ========================================================================== */
.show{position:relative;overflow:hidden;color:var(--cream-on-dark);
  padding:clamp(30px,4.6vw,54px);border:1px solid rgba(217,169,78,.3);
  background:radial-gradient(110% 130% at 12% 0%, #4A1517 0%, #2B0B0D 46%, #1B0708 100%);}
.show::before{content:'';position:absolute;inset:0;pointer-events:none;opacity:.5;
  background:repeating-linear-gradient(135deg,transparent 0 16px,rgba(217,169,78,.045) 16px 32px);}
.show-in{position:relative;display:grid;gap:clamp(22px,3.6vw,42px);
  grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);align-items:center;}
@media(max-width:820px){.show-in{grid-template-columns:1fr;}}
.show .kicker{font-family:'Karla',sans-serif;font-size:10.5px;font-weight:600;letter-spacing:.28em;
  text-transform:uppercase;color:var(--gold);}
.show .ttl{font-family:'Marcellus',serif;line-height:1;margin-top:11px;
  font-size:clamp(42px,9vw,80px);
  background:linear-gradient(176deg,#FFF0C8,var(--marigold) 52%,var(--marigold-dp));
  -webkit-background-clip:text;background-clip:text;color:transparent;}
.show .sub2{font-family:'Marcellus',serif;font-size:clamp(18px,3vw,27px);
  color:var(--cream-on-dark);letter-spacing:.18em;margin-top:5px;}
.show .troupe{margin-top:18px;font-size:17.5px;}
.show .troupe b{font-family:'Marcellus',serif;font-weight:400;color:var(--gold-lt);font-size:1.1em;}
.show .troupe span{color:var(--cream-dim);font-style:italic;}
.tamil{font-family:'Noto Sans Tamil','Cormorant Garamond',serif;
  font-size:clamp(15px,1.85vw,17px);line-height:2.05;color:var(--cream-on-dark);
  border-left:2px solid rgba(217,169,78,.44);padding-left:clamp(15px,2.2vw,23px);}
.tamil .big{display:block;font-size:1.3em;font-weight:600;color:var(--gold-lt);
  line-height:1.5;margin:6px 0;}

/* teaser variant on the invitation page */
.teaser{display:grid;gap:clamp(18px,3vw,34px);grid-template-columns:auto 1fr;align-items:center;
  padding:clamp(24px,3.6vw,38px);border:1px solid rgba(217,169,78,.3);color:var(--cream-on-dark);
  background:radial-gradient(120% 150% at 8% 0%, #4A1517 0%, #2B0B0D 50%, #1B0708 100%);
  text-decoration:none;transition:transform .3s cubic-bezier(.22,.7,.24,1),box-shadow .3s;}
.teaser:hover,.teaser:focus-visible{transform:translateY(-3px);box-shadow:var(--shadow-lg);}
.teaser .tnum{font-family:'Marcellus',serif;line-height:.92;text-align:center;
  font-size:clamp(46px,8vw,74px);
  background:linear-gradient(176deg,#FFF0C8,var(--marigold) 52%,var(--marigold-dp));
  -webkit-background-clip:text;background-clip:text;color:transparent;}
.teaser .tnum em{display:block;font-style:normal;font-family:'Karla',sans-serif;font-size:11px;
  letter-spacing:.24em;text-transform:uppercase;
  -webkit-text-fill-color:var(--gold);color:var(--gold);margin-top:4px;}
.teaser .tk{font-family:'Karla',sans-serif;font-size:10px;font-weight:600;letter-spacing:.26em;
  text-transform:uppercase;color:var(--gold);}
.teaser h3{font-family:'Marcellus',serif;font-weight:400;font-size:clamp(21px,3vw,29px);
  color:var(--cream-on-dark);margin-top:8px;line-height:1.2;}
.teaser p{color:var(--cream-dim);font-style:italic;font-size:16px;margin-top:6px;}
@media(max-width:620px){.teaser{grid-template-columns:1fr;text-align:center;}}

/* prize callout */
.prize{display:grid;gap:clamp(16px,2.8vw,30px);grid-template-columns:auto 1fr;align-items:center;
  background:linear-gradient(178deg,#FFFBF2,var(--paper-lt));border:1px solid var(--rule);
  padding:clamp(24px,3.8vw,38px);box-shadow:var(--shadow-md);}
.prize .medal{color:var(--maroon);flex:none;}
.prize h3{font-family:'Marcellus',serif;font-size:clamp(20px,2.9vw,28px);color:var(--maroon);line-height:1.2;}
.prize p{margin-top:9px;font-size:17px;}
@media(max-width:620px){.prize{grid-template-columns:1fr;text-align:center;justify-items:center;}}

/* ==========================================================================
   COMMITTEE
   ========================================================================== */
.wing{margin-top:clamp(28px,4.2vw,46px);}
.wing:first-of-type{margin-top:0;}
.wing-hd{display:flex;align-items:center;gap:14px;margin-bottom:20px;}
.wing-hd h3{font-family:'Marcellus',serif;font-size:clamp(19px,2.6vw,26px);color:var(--maroon);
  white-space:nowrap;line-height:1.2;}
.wing-hd i{flex:1;height:1px;background:linear-gradient(90deg,var(--rule),transparent);}
.leads{display:grid;grid-template-columns:repeat(auto-fit,minmax(205px,1fr));
  background:var(--paper-lt);box-shadow:0 0 0 1px var(--paper-edge);margin-bottom:18px;}
.lead-c{padding:15px 17px;box-shadow:0 0 0 1px var(--paper-edge);}
.lead-c .r2{font-family:'Karla',sans-serif;font-size:9.5px;font-weight:600;letter-spacing:.2em;
  text-transform:uppercase;color:var(--maroon-lt);}
.lead-c .n2{font-family:'Marcellus',serif;font-size:18px;color:var(--text);margin-top:4px;line-height:1.3;}
.members{columns:3;column-gap:clamp(18px,2.8vw,38px);}
.members li{break-inside:avoid;list-style:none;padding:5px 0 5px 17px;position:relative;font-size:16.5px;}
.members li::before{content:'';position:absolute;left:0;top:.85em;width:5px;height:5px;
  background:var(--rule);transform:rotate(45deg);}
.members li em{font-style:italic;color:var(--text-soft);font-size:.9em;}
@media(max-width:860px){.members{columns:2;}}
@media(max-width:520px){.members{columns:1;}}
.coord{margin-bottom:15px;font-size:16.5px;}
.coord b{font-family:'Karla',sans-serif;font-size:10px;font-weight:600;letter-spacing:.2em;
  text-transform:uppercase;color:var(--maroon-lt);display:block;margin-bottom:3px;}

/* ==========================================================================
   VENUE · CONTACT · FOOTER
   ========================================================================== */
.venue-grid{display:grid;gap:clamp(22px,3.6vw,42px);grid-template-columns:1fr auto;align-items:center;}
@media(max-width:760px){.venue-grid{grid-template-columns:1fr;text-align:center;justify-items:center;}}
.venue-grid .vn{font-family:'Marcellus',serif;font-size:clamp(28px,4.6vw,44px);color:var(--maroon);line-height:1.1;}
.venue-grid .va{font-size:18.5px;margin-top:7px;}
.venue-grid .vt{margin-top:12px;color:var(--text-soft);font-style:italic;}
.qrbox{text-align:center;}
.qrbox img{width:clamp(126px,19vw,158px);height:auto;background:#fff;padding:9px;
  border:1px solid var(--rule);box-shadow:var(--shadow-md);}
.qrbox .qc{font-family:'Karla',sans-serif;font-size:9.5px;font-weight:600;letter-spacing:.2em;
  text-transform:uppercase;color:var(--text-soft);margin-top:11px;}

.phones{display:flex;flex-wrap:wrap;gap:11px;justify-content:center;}
.phones a{display:inline-flex;align-items:center;gap:9px;text-decoration:none;
  font-family:'Karla',sans-serif;font-size:15.5px;font-weight:600;
  color:var(--maroon);background:var(--paper-lt);border:1px solid var(--rule);
  padding:12px 21px;border-radius:999px;
  transition:background .22s,color .22s,transform .22s,box-shadow .22s;}
.phones a:hover,.phones a:focus-visible{background:var(--maroon);color:var(--paper-lt);
  border-color:var(--maroon);transform:translateY(-2px);box-shadow:var(--shadow-md);}
.phones a:hover svg{color:var(--paper-lt);}
.phones svg{color:var(--maroon-lt);transition:color .22s;}

.foot{background:var(--ink);color:var(--cream-dim);text-align:center;
  padding:clamp(42px,6vw,68px) var(--pad) clamp(28px,4vw,40px);}
.foot img{width:56px;height:56px;border-radius:50%;background:#fff;margin:0 auto 16px;}
.foot .fo{font-family:'Marcellus',serif;font-size:clamp(19px,3vw,25px);color:var(--gold-lt);line-height:1.24;}
.foot .fp{font-family:'Marcellus',serif;font-size:11.5px;letter-spacing:.38em;padding-left:.38em;
  color:var(--cream-dim);margin-top:7px;}
.foot .fnav{display:flex;gap:6px;justify-content:center;flex-wrap:wrap;margin-top:22px;}
.foot .fnav a{font-family:'Karla',sans-serif;font-size:12px;font-weight:500;letter-spacing:.12em;
  text-transform:uppercase;text-decoration:none;color:var(--cream-dim);padding:7px 13px;
  border:1px solid rgba(217,169,78,.24);border-radius:999px;transition:color .22s,border-color .22s;}
.foot .fnav a:hover{color:var(--gold-lt);border-color:var(--gold-dp);}
.foot .motto{font-family:'Marcellus',serif;font-size:14px;letter-spacing:.34em;padding-left:.34em;
  color:var(--gold);margin-top:24px;}
.foot .motto::before,.foot .motto::after{content:"◆";font-size:.6em;color:var(--gold-dp);
  margin:0 12px;vertical-align:middle;}
.foot .cp{font-family:'Karla',sans-serif;font-size:11px;color:#8E7A5E;margin-top:22px;line-height:1.9;}

/* toast for the share fallback */
.toast{position:fixed;left:50%;bottom:26px;transform:translate(-50%,20px);z-index:120;
  background:var(--ink);color:var(--gold-lt);border:1px solid rgba(217,169,78,.4);
  font-family:'Karla',sans-serif;font-size:13.5px;padding:12px 22px;border-radius:999px;
  opacity:0;pointer-events:none;transition:opacity .3s,transform .3s;}
.toast.on{opacity:1;transform:translate(-50%,0);}

/* ==========================================================================
   MOTION / PRINT
   ========================================================================== */
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;
    transition-duration:.001ms!important;}
  .js .rv{opacity:1;transform:none;}
}

@media print{
  .topbar,#embers,#garland,.lamp,.grain,.cta,.actions,.doors,.toast,.foot .fnav,.skip{display:none!important;}
  body{background:#fff;color:#000;font-size:11pt;}
  .hero,.phead{background:#fff!important;color:#000;padding:0 0 12pt;min-height:auto;margin-top:0;}
  .hero::after,.phead::before{display:none;}
  .org,.phead h1,.fifth .n,.count .n,.show .ttl,.teaser .tnum{
    -webkit-text-fill-color:#6E1114!important;color:#6E1114!important;background:none!important;}
  .org-place,.hero-venue,.regd,.phead .sub{color:#333!important;}
  .show,.teaser{background:#fff!important;color:#000!important;border:1pt solid #999;}
  .tamil{color:#000;border-left-color:#999;}
  .show .troupe span,.teaser p{color:#444!important;}
  section.paper{padding:10pt 0;}
  section.paper.alt{background:#fff;}
  /* keep small units whole; never a whole section, which is taller than a page */
  .srow,.guest,.prize,.fact,.lead-c,.teaser,.show{break-inside:avoid;}
  .sec-head,.wing-hd{break-after:avoid;}
  .phead{break-after:avoid;}
  /* every schedule detail printed open — paper has no hover.
     Rows flatten to plain blocks: a grid <button> will not grow its own
     height when the detail is forced open, and the box overlaps the row. */
  .sched{box-shadow:none;border:1pt solid #C9AE79;}
  .srow{display:block!important;width:100%;height:auto!important;overflow:visible!important;
        padding:7pt 9pt!important;border-top:1pt solid #EADFC6;background:#fff!important;}
  .srow .s-item{display:block;}
  .srow .s-who{display:block;margin-top:1pt;}
  .s-detail{display:block!important;max-height:none!important;opacity:1!important;
            overflow:visible!important;}
  .s-detail .box{background:#fff;border-left:1pt solid #6E1114;margin-top:4pt;padding:3pt 0 3pt 7pt;}
  .srow .s-more{display:none;}
  .frame{box-shadow:none;border:1pt solid #6E1114;}
  .members{columns:3;}
  a[href^="tel:"]::after{content:"";}
  .js .rv{opacity:1!important;transform:none!important;}
}

/* ==========================================================================
   Ornament scaling — the frames are generous on desktop, but at phone
   widths 15px of border on each side eats the text column, so ease them in.
   ========================================================================== */
@media(max-width:560px){
  .door{border-width:11px;border-image-width:11px;
        padding:clamp(22px,5vw,30px) clamp(16px,4vw,22px) clamp(20px,4vw,26px);}
  .door::before{width:78px;height:31px;margin-bottom:12px;}
  .frame{border-width:12px;border-image-width:12px;padding:clamp(18px,4.5vw,26px);}
  .fact,.guest{border-width:10px;border-image-width:10px;}
  .sched{border-width:10px;border-image-width:10px;}
  .fact{padding:clamp(18px,4vw,24px) 12px;}
  .guest{padding:clamp(20px,4.5vw,26px);}
}


/* ==========================================================================
   HIGHLIGHTS — a ceremonial dark band that breaks the cream rhythm
   ========================================================================== */
.highlights{
  position:relative;overflow:hidden;color:var(--cream-on-dark);
  padding:clamp(56px,8vw,96px) 0;
  background:radial-gradient(120% 130% at 50% 0%, #4A1517 0%, #2B0B0D 46%, #1B0708 100%);
  border-block:1px solid rgba(217,169,78,.3);
}
.highlights::before{content:'';position:absolute;inset:0;pointer-events:none;opacity:.45;
  background:repeating-linear-gradient(135deg,transparent 0 16px,rgba(217,169,78,.045) 16px 32px);}
.highlights .wrap{position:relative;}
.highlights .sec-title{
  background:linear-gradient(178deg,#FDF3D6 8%,var(--gold) 58%,var(--gold-dp) 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;}
.highlights .sec-lede{color:var(--cream-dim);}

.hl-grid{display:grid;gap:clamp(16px,2.4vw,24px);
  grid-template-columns:repeat(auto-fit,minmax(258px,1fr));}
.hl-card{
  display:flex;flex-direction:column;align-items:center;text-align:center;
  padding:clamp(26px,3.4vw,36px) clamp(20px,2.6vw,28px);
  border:14px solid transparent;
  border-image:var(--frame-dark) 44 / 14px / 0 stretch;
  background:linear-gradient(180deg,rgba(240,227,200,.075),rgba(240,227,200,.028));
  background-clip:padding-box;
  transition:transform .34s cubic-bezier(.22,.7,.24,1),background .34s;
}
.hl-card:hover{transform:translateY(-6px);
  background:linear-gradient(180deg,rgba(240,227,200,.13),rgba(240,227,200,.05));}
.hl-ico{color:var(--gold);margin-bottom:14px;transition:transform .34s cubic-bezier(.22,.7,.24,1);}
.hl-card:hover .hl-ico{transform:scale(1.08);}
.hl-card h3{font-family:'Marcellus',serif;font-weight:400;line-height:1.18;
  font-size:clamp(20px,2.6vw,25px);color:var(--gold-lt);}
.hl-card p{margin-top:10px;font-size:16.5px;color:var(--cream-on-dark);opacity:.9;}
.hl-card p b{color:var(--gold-lt);font-weight:600;}
.hl-tag{margin-top:16px;font-family:'Karla',sans-serif;font-size:9.5px;font-weight:600;
  letter-spacing:.22em;text-transform:uppercase;color:var(--gold);
  border:1px solid rgba(217,169,78,.45);padding:6px 15px;}

/* ==========================================================================
   COMMITTEE TABS — letterpress rules, never pills
   ========================================================================== */
.tabs-nav{display:flex;flex-wrap:wrap;justify-content:center;gap:0;
  border-bottom:1px solid var(--rule);margin-bottom:clamp(24px,3.4vw,36px);}
html:not(.js) .tabs-nav{display:none;}      /* without JS every panel shows */
.tab-btn{
  position:relative;margin-bottom:-1px;cursor:pointer;background:none;
  border:0;border-bottom:2px solid transparent;padding:13px clamp(12px,2vw,22px);
  font-family:'Karla',sans-serif;font-size:11.5px;font-weight:600;
  letter-spacing:.15em;text-transform:uppercase;color:var(--text-soft);
  transition:color .25s,border-color .25s,background .25s;
}
.tab-btn:hover{color:var(--maroon);background:rgba(110,17,20,.045);}
.tab-btn[aria-selected="true"]{color:var(--maroon);border-bottom-color:var(--maroon);}
.tab-btn[aria-selected="true"]::before{content:'';position:absolute;left:50%;top:2px;
  width:22px;height:11px;transform:translateX(-50%);
  background:var(--lotus) center/contain no-repeat;opacity:.75;}
.tab-panel[hidden]{display:none;}
.tab-panel{animation:tabin .42s cubic-bezier(.22,.7,.24,1);}
@keyframes tabin{from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:none;}}
@media(prefers-reduced-motion:reduce){.tab-panel{animation:none;}}
.tab-count{display:block;margin-top:3px;font-family:'Cormorant Garamond',serif;
  font-style:italic;font-size:12px;letter-spacing:0;text-transform:none;color:var(--text-soft);opacity:.8;}

/* ==========================================================================
   CULTURAL BANNER — the Tamil announcement, kept slim on the front page
   ========================================================================== */
.cbanner{
  position:relative;overflow:hidden;display:grid;gap:clamp(20px,3.4vw,40px);
  grid-template-columns:auto 1fr;align-items:center;
  padding:clamp(26px,3.6vw,40px) clamp(24px,3.4vw,44px);
  color:var(--cream-on-dark);border:1px solid rgba(217,169,78,.32);
  background:radial-gradient(120% 160% at 6% 0%, #4A1517 0%, #2B0B0D 52%, #1B0708 100%);
}
.cbanner::before{content:'';position:absolute;inset:0;pointer-events:none;opacity:.5;
  background:repeating-linear-gradient(135deg,transparent 0 16px,rgba(217,169,78,.04) 16px 32px);}
.cbanner > *{position:relative;}
.cbanner .cb-mark{font-family:'Marcellus',serif;line-height:.9;text-align:center;
  font-size:clamp(40px,7vw,66px);
  background:linear-gradient(176deg,#FFF0C8,var(--marigold) 52%,var(--marigold-dp));
  -webkit-background-clip:text;background-clip:text;color:transparent;}
.cbanner .cb-mark em{display:block;font-style:normal;font-family:'Karla',sans-serif;
  font-size:10px;letter-spacing:.22em;text-transform:uppercase;
  -webkit-text-fill-color:var(--gold);color:var(--gold);margin-top:6px;}
.cbanner .cb-k{font-family:'Karla',sans-serif;font-size:10px;font-weight:600;
  letter-spacing:.26em;text-transform:uppercase;color:var(--gold);}
.cbanner h3{font-family:'Marcellus',serif;font-weight:400;margin-top:8px;line-height:1.18;
  font-size:clamp(20px,2.9vw,28px);color:var(--cream-on-dark);}
.cbanner .cb-ta{font-family:'Noto Sans Tamil','Cormorant Garamond',serif;
  margin-top:12px;font-size:15px;line-height:1.95;color:var(--cream-dim);
  border-left:2px solid rgba(217,169,78,.4);padding-left:16px;}
.cbanner .cb-ta b{color:var(--gold-lt);font-weight:600;}
@media(max-width:640px){.cbanner{grid-template-columns:1fr;text-align:center;}
  .cbanner .cb-ta{text-align:left;}}

/* With JS the active tab already names the panel, so the in-panel heading is
   redundant — it exists for the no-JS fallback, where panels read as sections. */
html.js .tab-panel .wing-hd{display:none;}
html.js .tab-panel .wing{margin-top:0;}
@media(max-width:560px){
  .tabs-nav{gap:0;}
  .tab-btn{padding:11px 10px;font-size:10.5px;letter-spacing:.1em;flex:1 1 auto;}
}

/* ==========================================================================
   FORMAL INVITATION — page thumbnails opening a lightbox
   ========================================================================== */
.inv-grid{display:grid;gap:clamp(14px,2.2vw,20px);
  grid-template-columns:repeat(auto-fit,minmax(190px,1fr));}
.inv-item{display:flex;flex-direction:column;}
.inv-thumb{
  display:block;width:100%;padding:0;cursor:pointer;background:var(--paper-lt);
  border:11px solid transparent;border-image:var(--frame-soft) 44 / 11px / 0 stretch;
  background-clip:padding-box;
  transition:transform .32s cubic-bezier(.22,.7,.24,1),filter .32s,border-image-source .32s;
}
.inv-thumb img{width:100%;height:auto;display:block;}
.inv-thumb:hover,.inv-thumb:focus-visible{transform:translateY(-5px);
  filter:drop-shadow(0 16px 30px rgba(30,8,8,.17));
  border-image-source:var(--frame);}
.inv-cap{display:flex;align-items:baseline;justify-content:space-between;gap:10px;
  margin-top:11px;font-family:'Karla',sans-serif;font-size:11px;font-weight:600;
  letter-spacing:.18em;text-transform:uppercase;color:var(--maroon);}
.inv-cap span{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:14px;
  letter-spacing:0;text-transform:none;color:var(--text-soft);}
.inv-note{text-align:center;margin-top:clamp(20px,3vw,30px);font-style:italic;
  font-size:15.5px;color:var(--text-soft);}

/* lightbox */
.lb{position:fixed;inset:0;z-index:140;display:none;
  align-items:center;justify-content:center;padding:clamp(14px,3vw,42px);
  background:rgba(16,5,5,.94);backdrop-filter:blur(6px);}
.lb.on{display:flex;}
.lb-fig{position:relative;max-width:min(94vw,860px);max-height:92vh;
  display:flex;flex-direction:column;align-items:center;gap:12px;}
.lb-fig img{max-width:100%;max-height:82vh;width:auto;height:auto;background:#fff;
  box-shadow:0 30px 70px rgba(0,0,0,.6);}
.lb-cap{font-family:'Karla',sans-serif;font-size:11.5px;font-weight:600;
  letter-spacing:.2em;text-transform:uppercase;color:var(--gold-lt);}
.lb-btn{position:absolute;top:50%;transform:translateY(-50%);
  width:46px;height:46px;display:flex;align-items:center;justify-content:center;
  cursor:pointer;color:var(--gold-lt);background:rgba(24,7,8,.75);
  border:1px solid rgba(217,169,78,.4);border-radius:50%;
  transition:background .22s,color .22s;}
.lb-btn:hover{background:var(--maroon);color:var(--paper-lt);}
.lb-prev{left:-58px;} .lb-next{right:-58px;}
.lb-close{position:absolute;top:-52px;right:0;width:42px;height:42px;
  display:flex;align-items:center;justify-content:center;cursor:pointer;
  color:var(--gold-lt);background:rgba(24,7,8,.75);
  border:1px solid rgba(217,169,78,.4);border-radius:50%;transition:background .22s;}
.lb-close:hover{background:var(--maroon);}
@media(max-width:820px){
  .lb-prev{left:2px;} .lb-next{right:2px;}
  .lb-btn{width:40px;height:40px;}
  .lb-close{top:-48px;}
}
body.lb-open{overflow:hidden;}

/* footer credit */
.foot .credit{font-family:'Karla',sans-serif;font-size:11px;color:#7C6950;
  margin-top:12px;letter-spacing:.04em;}

/* venue fact is a link to Maps — directions without scrolling to the bottom */
a.fact-link{text-decoration:none;color:inherit;display:block;
  transition:transform .3s cubic-bezier(.22,.7,.24,1),filter .3s,border-image-source .3s;}
a.fact-link:hover,a.fact-link:focus-visible{transform:translateY(-4px);
  filter:drop-shadow(0 14px 26px rgba(30,8,8,.13));
  border-image-source:var(--frame);}
.fact-go{display:inline-flex;align-items:center;gap:6px;margin-top:12px;
  font-family:'Karla',sans-serif;font-size:10.5px;font-weight:600;letter-spacing:.16em;
  text-transform:uppercase;color:var(--maroon);}
a.fact-link:hover .fact-go svg{transform:translate(2px,-2px);}
.fact-go svg{transition:transform .3s cubic-bezier(.22,.7,.24,1);}


/* the Sivadas Velloli highlight card is the way through to the schedule */
a.hl-card{text-decoration:none;color:inherit;}
.hl-go{display:inline-flex;align-items:center;gap:8px;margin-top:16px;
  font-family:'Karla',sans-serif;font-size:10.5px;font-weight:600;letter-spacing:.18em;
  text-transform:uppercase;color:var(--gold-lt);}
.hl-go svg{transition:transform .3s cubic-bezier(.22,.7,.24,1);}
a.hl-card:hover .hl-go svg,a.hl-card:focus-visible .hl-go svg{transform:translateX(5px);}
a.hl-card:hover .hl-go,a.hl-card:focus-visible .hl-go{color:#FFF3D4;}
