:root{--bg:#f5f7fb;--surf:#fff;--ink:#16213a;--mut:#4d5a75;--acc:#1d3f94;--gold:#c9a227;--goldtxt:#8a6508;--line:#dfe4ef;--navy:#0c1b3f;--head:#0c1b3f;--r:14px;color-scheme:light}
@media(prefers-color-scheme:dark){:root{--bg:#0a1226;--surf:#121b36;--ink:#eef1f8;--mut:#aab4cc;--acc:#e6c36a;--gold:#e6c36a;--goldtxt:#e6c36a;--line:#26335a;--head:#f4f6fb;color-scheme:dark}}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:5rem}
body{margin:0;background:var(--bg);color:var(--ink);font:1.0625rem/1.75 Inter,system-ui,sans-serif}
h1,h2,h3{font-family:Fraunces,Georgia,'Noto Serif Tamil',serif;line-height:1.2;font-weight:600}
a{color:var(--acc)}img{max-width:100%;height:auto;display:block}
.wrap{max-width:1080px;margin:auto;padding:0 1.25rem}
.skip{position:absolute;left:-999px}.skip:focus{left:1rem;top:1rem;background:var(--surf);padding:.5rem;z-index:99}
header.top{position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--bg) 90%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.bar{display:flex;align-items:center;justify-content:space-between;min-height:3.75rem}
.brand{font:600 1.15rem Fraunces,serif;color:var(--ink);text-decoration:none}.brand span{color:var(--gold)}
#nav ul{display:flex;gap:.25rem;list-style:none;margin:0;padding:0;flex-wrap:wrap}
#nav a{display:block;padding:.5rem .8rem;border-radius:99px;color:var(--ink);text-decoration:none;font-size:.95rem}
#nav a:hover,#nav a[aria-current]{background:var(--acc);color:#fff}
.menu{display:none;background:none;border:1px solid var(--line);color:var(--ink);border-radius:8px;padding:.5rem .8rem;font:inherit}
@media(max-width:760px){.js .menu{display:block}.js #nav{display:none;position:absolute;left:0;right:0;top:100%;background:var(--bg);border-bottom:1px solid var(--line);padding:.5rem 1rem 1rem}.js #nav.open{display:block}#nav ul{flex-direction:column}}
.hero{text-align:center;padding:clamp(2.5rem,7vw,5rem) 0 2rem}
.hero h1{font-size:clamp(2rem,5.5vw,3.6rem);margin:.2em 0}
.eyebrow{color:var(--gold);letter-spacing:.14em;text-transform:uppercase;font-size:.8rem;font-weight:600}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem;margin:2rem 0}
.card{background:var(--surf);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;text-decoration:none;color:inherit;transition:transform .2s,box-shadow .2s}
.card:hover{transform:translateY(-3px);box-shadow:0 12px 30px #0002}
.card img{width:100%;height:auto;object-fit:contain}.card div{padding:1.1rem 1.3rem 1.4rem}.card h2{margin:.2rem 0;font-size:1.4rem}.card p{margin:0;color:var(--mut)}
.dates{color:var(--mut);font-style:italic}
.quote{margin:3rem auto;max-width:44rem;text-align:center;padding:2rem 1.5rem;border-block:1px solid var(--line)}
.quote .ta{font:600 clamp(1.4rem,4vw,2rem)/1.5 'Noto Serif Tamil',serif;color:var(--acc)}
.quote p{margin:.6rem 0}
.glance{background:var(--surf);border:1px solid var(--line);border-left:4px solid var(--gold);border-radius:var(--r);padding:1rem 1.4rem;margin:1.5rem 0}
.glance dl{display:grid;grid-template-columns:max-content 1fr;gap:.2rem 1.2rem;margin:0}.glance dt{font-weight:600}.glance dd{margin:0}
.crumbs{font-size:.9rem;color:var(--mut);padding-top:1.25rem}.crumbs a{color:var(--mut)}
.layout{display:grid;grid-template-columns:230px 1fr;gap:3rem;align-items:start}
.toc{position:sticky;top:5rem;font-size:.92rem}.toc ol{list-style:none;padding:0;margin:0;border-left:2px solid var(--line)}.toc a{display:block;padding:.3rem .9rem;color:var(--mut);text-decoration:none}.toc a:hover{color:var(--acc)}
.toc summary{font-weight:600;cursor:pointer;margin-bottom:.5rem}
@media(max-width:860px){.layout{grid-template-columns:1fr;gap:0}.toc{position:static;margin-bottom:1rem;background:var(--surf);border:1px solid var(--line);border-radius:var(--r);padding:.8rem 1rem}}
article section{margin-bottom:3.5rem}article h2{font-size:clamp(1.5rem,3.5vw,2rem);margin:0 0 .6rem}
figure{margin:1.5rem 0}figure img{border-radius:var(--r);width:100%;cursor:zoom-in;border:1px solid var(--line)}figcaption{font-size:.9rem;color:var(--mut);margin-top:.4rem}
.next{display:flex;gap:1rem;flex-wrap:wrap;margin:2rem 0}.next a{flex:1 1 220px;padding:1rem 1.3rem;background:var(--surf);border:1px solid var(--line);border-radius:var(--r);text-decoration:none;font-weight:600}
.memorial{text-align:center;font-family:Fraunces,serif;font-size:1.25rem;color:var(--acc);margin:2.5rem 0}
footer{border-top:1px solid var(--line);padding:2rem 0;color:var(--mut);font-size:.92rem;text-align:center}
dialog{border:0;background:transparent;max-width:95vw;max-height:95vh;padding:0}dialog::backdrop{background:#000d}dialog img{max-height:92vh;border-radius:8px}
:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
@media(max-width:600px){.glance dl{grid-template-columns:1fr}.glance dt{margin-top:.6rem;color:var(--mut);font-size:.8rem;text-transform:uppercase;letter-spacing:.08em}}

body{font-size:1.125rem}h1,h2,h3{color:var(--head)}article p{max-width:68ch}
header.top{background:var(--navy);border-bottom:3px solid var(--gold);backdrop-filter:none}
.brand{color:#fff}.brand span{color:var(--gold)}
#nav a{color:#e8ecf6}#nav a:hover{background:#ffffff1f;color:#fff}#nav a[aria-current]{background:var(--gold);color:var(--navy);font-weight:600}
.menu{border-color:#ffffff66;color:#fff}
@media(max-width:760px){.js #nav{background:var(--navy)}}
.hero{background:linear-gradient(160deg,#0c1b3f,#1b3a7a);color:#fff;border-radius:var(--r);margin-top:1.5rem;padding:clamp(2.5rem,7vw,4.5rem) 1.25rem}
.hero h1{color:#fff}.hero .eyebrow{color:var(--gold)}
.eyebrow{color:var(--goldtxt)}.card{border-top:4px solid var(--gold)}
.quote .ta{color:var(--head)}.memorial{color:var(--head)}
.glance{border-left-color:var(--gold)}.toc a:hover{color:var(--acc)}
a:not(.card):not(.skip){text-underline-offset:3px}
.next a{border-left:4px solid var(--gold);color:var(--head)}.next a:hover{background:var(--navy);color:#fff}
.grid{display:block}.grid figure{margin:0}.grid img{height:auto;object-fit:contain}
.grid-h{margin:2.5rem 0 1rem}.btn{display:inline-block;margin-top:.5rem;padding:.6rem 1.1rem;background:var(--navy);color:#fff;border-radius:99px;text-decoration:none;border:1px solid var(--gold)}
.poem{font-family:Fraunces,Georgia,serif;font-size:1.2rem;font-style:italic;border-left:4px solid var(--gold);padding:.5rem 1.2rem;margin:1.5rem 0;color:var(--head)}

.bar{min-height:4.4rem}.brand{display:flex;align-items:center;gap:.75rem;text-decoration:none}
.brand svg{width:48px;height:48px;flex:none;filter:drop-shadow(0 2px 4px #0006)}
.brand .wm{display:flex;flex-direction:column;line-height:1.05}
.brand .wm b{font:600 1.45rem Fraunces,Georgia,serif;letter-spacing:.02em;background:linear-gradient(180deg,#f6dc82,#c9a227);-webkit-background-clip:text;background-clip:text;color:transparent}
.brand .wm small{font:600 .62rem Inter,sans-serif;letter-spacing:.24em;text-transform:uppercase;color:#c8d1e8;margin-top:.25rem}
@media(max-width:380px){.brand .wm small{display:none}}
/* show whole photos, never crop */
.card img{aspect-ratio:auto;height:auto;max-height:600px;object-fit:contain;background:linear-gradient(160deg,#0c1b3f,#1b3a7a)}
.grid{display:block;columns:230px;column-gap:1rem}
.grid figure{break-inside:avoid;margin:0 0 1rem}
.grid img{aspect-ratio:auto;height:auto;object-fit:contain;background:var(--surf)}

.bar{min-height:5rem}.brand svg{width:64px;height:64px}
.brand .wm small{font-family:'Noto Serif Tamil',Inter,sans-serif;letter-spacing:.06em;text-transform:none;font-size:.78rem;color:#e6c36a;margin-top:.3rem}
.crest svg{width:clamp(130px,24vw,180px);height:auto;margin:0 auto .8rem;display:block;filter:drop-shadow(0 6px 14px #0008)}

img{height:auto;object-fit:contain}
.bar{min-height:4rem}.brand{gap:.65rem}.brand svg{width:44px;height:44px}
.brand .wm b{font-size:1.3rem}
.brand .wm small{font:600 .6rem Inter,sans-serif;letter-spacing:.26em;text-transform:uppercase;color:#e6c36a;margin-top:.2rem}
.flogo{display:inline-block;margin-bottom:.6rem}.flogo svg{width:44px;height:44px}
.gal-intro{display:flex;align-items:center;justify-content:center;gap:2rem;flex-wrap:wrap;background:linear-gradient(160deg,#0c1b3f,#1b3a7a);border-radius:var(--r);padding:1.5rem;margin:1.5rem 0}
.gal-logo svg{width:150px;height:150px;display:block}
.gal-intro figure{margin:0;max-width:300px}.gal-intro figcaption{color:#e8ecf6;text-align:center}
.gal-intro figure img{border:2px solid var(--gold)}

/* taller header */
header.top{position:static}@media(max-width:760px){header.top{position:sticky}}
.bar{max-width:1200px;min-height:8rem;gap:1rem}
.brand{gap:1.1rem}.brand svg{width:92px;height:92px}
.brand .wm b{font-size:2.5rem}.brand .wm small{font-size:.82rem;letter-spacing:.32em;margin-top:.45rem}
#nav a{font-size:1.05rem;padding:.65rem 1rem}
@media(max-width:1100px){.brand svg{width:76px;height:76px}.brand .wm b{font-size:2rem}#nav a{font-size:.95rem;padding:.5rem .7rem}}
@media(max-width:760px){.bar{min-height:5.5rem}.brand svg{width:60px;height:60px}.brand .wm b{font-size:1.6rem}.brand .wm small{font-size:.58rem;letter-spacing:.24em}}
@media(max-width:380px){.brand .wm small{display:block}.brand .wm b{font-size:1.35rem}}
/* gallery logo panel */
.gal-intro{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;background:none;padding:0}
.gal-logo,.gal-photo{background:linear-gradient(160deg,#0c1b3f,#1b3a7a);border-radius:var(--r);padding:1.5rem;margin:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#e8ecf6}
.gal-logo svg{width:min(100%,320px);height:auto;filter:drop-shadow(0 8px 18px #0008)}.gal-logo p{margin:.8rem 0 0;font-family:Fraunces,serif;color:#e6c36a;font-size:1.2rem}.gal-logo .dl{font:.9rem Inter,sans-serif}.gal-logo .dl a{color:#fff}
.gal-photo{max-width:none}.gal-photo img{max-height:380px;width:auto;max-width:100%;margin:auto}
@media(max-width:760px){.gal-intro{grid-template-columns:1fr}}
/* family tree */
.chips{display:flex;gap:.6rem;flex-wrap:wrap;margin:1rem 0}.chips a{padding:.5rem 1rem;border-radius:99px;background:var(--navy);color:#fff;text-decoration:none;border:1px solid var(--gold);font-size:.95rem}
.rings{color:var(--goldtxt);font-weight:700}
.node{background:var(--surf);border:1px solid var(--line);border-top:3px solid var(--gold);border-radius:12px;padding:.7rem .9rem;text-align:center;line-height:1.35}
.node strong{display:block;font-size:1rem}.node small{display:block;color:var(--mut);font-size:.85rem;margin-top:.2rem}.node a{text-decoration:none}
.node.key{border:2px solid var(--gold);background:linear-gradient(180deg,var(--surf),var(--bg))}
.lines{display:grid;grid-template-columns:1fr 1fr;gap:2rem}@media(max-width:760px){.lines{grid-template-columns:1fr}}
.chain{list-style:none;padding:0;margin:0}.chain li{position:relative;padding-bottom:1.6rem}.chain li:not(:last-child)::after{content:"↓";position:absolute;left:50%;bottom:.1rem;transform:translateX(-50%);color:var(--goldtxt);font-size:1.3rem;font-weight:700}
.places{font-size:.9rem;color:var(--mut)}.join{text-align:center;color:var(--goldtxt);font-weight:600;margin:1rem 0}
.tree,.kids,.gc{list-style:none;margin:0;padding:0}
.node.union{background:var(--navy);color:#fff;border-color:var(--gold);display:inline-block;max-width:340px}.node.union small{color:#e6c36a}.node.union .rings{color:var(--gold);font-size:1.4rem;display:block}
.node.child{position:relative}.num{display:inline-grid;place-items:center;width:1.6rem;height:1.6rem;border-radius:50%;background:var(--gold);color:var(--navy);font-weight:700;font-size:.85rem;margin-bottom:.3rem}
.node.small{padding:.4rem .7rem;border-top-width:1px;border-left:3px solid var(--gold);background:var(--bg)}
.gc{display:flex;flex-direction:column;gap:.4rem;margin-top:.6rem}
.kids{margin:.4rem 0 0 1.2rem;border-left:2px solid var(--gold)}.kids>li{position:relative;padding:.5rem 0 .5rem 1.4rem}.kids>li::before{content:"";position:absolute;left:0;top:1.9rem;width:1.2rem;border-top:2px solid var(--gold)}
.node.child,.node.small{text-align:left}.gc{margin-left:1rem}
.hist section{margin-bottom:2rem}.hist h3{font-size:1.35rem;margin:0 0 .4rem}.hist p{max-width:70ch}
@media(min-width:900px){
.tree{text-align:center}.node.child,.node.small{text-align:center}
.kids{display:flex;justify-content:center;border:0;margin:0;padding-top:26px;position:relative}
.kids::before{content:"";position:absolute;top:0;left:50%;border-left:2px solid var(--gold);height:26px}
.kids>li{display:flex;flex-direction:column;align-items:center;padding:26px 5px 0}
.kids>li::before,.kids>li::after{content:"";position:absolute;top:0;width:50%;height:26px;border-top:2px solid var(--gold);left:auto;right:50%}
.kids>li::after{right:auto;left:50%;border-left:2px solid var(--gold)}
.kids>li:first-child::before,.kids>li:last-child::after{border:0}
.kids>li:last-child::before{border-right:2px solid var(--gold);border-radius:0 10px 0 0}.kids>li:first-child::after{border-radius:10px 0 0 0}
.kids>li>.node{width:150px}.gc{margin:0;padding-top:18px;position:relative;align-items:center}.gc::before{content:"";position:absolute;top:0;left:50%;border-left:2px solid var(--gold);height:18px}.gc .node{width:140px}}
.node strong{overflow-wrap:anywhere;hyphens:auto}@media(min-width:900px){.kids>li>.node{width:156px}}
.gal-intro figure.gal-photo{max-width:none;align-self:stretch}.gal-photo img{max-height:420px}
