:root {
--c-ink:        #162027;   
--c-ink-soft:   #4B5A64;   
--c-ink-faint:  #556570;   
--c-bg:          #FFFFFF;
--c-bg-alt:      #ECF3F7;  
--c-bg-sink:     #052a63;  
--c-line:        #D7E2EA;  
--c-line-soft:   #E7EEF3;  
--c-brand:       #093d8c;  
--c-brand-hover: #0A2E5C;  
--c-brand-tint:  #E3EDF4;  
--c-accent:      #CCA254;  
--c-accent-soft: #C2DCEC;  
--c-crest:       #BB5C51;  
--c-focus:       #0F4F98;  
--c-focus-on-dark: #FFFFFF; 
--c-on-brand:    #FFFFFF;  
--c-danger:       #8A1C1C; 
--c-danger-bg:    #FBE9E7;
--c-danger-line:  #E0A9A0;
--c-danger-ink:   #7A1B12;  
--c-warn-ink:     #7A5200;  
--c-warn-bg:      #FFF4E0;
--c-warn-line:    #E7C57A;
--c-neutral-bg:   #EEF0F1;
--c-neutral-line: #CBD2D4;
--c-neutral-ink:  #47535A;  
--c-muted-bg:     #F1EEF4;
--c-muted-line:   #CFC5DB;
--c-muted-ink:    #5B4C73;  
--c-notice:       #7A2A3A;  
--c-notice-bg:    #F7E8EE;
--c-on-sink:        #D3E0EA;  
--c-on-sink-soft:   #A2B4C4;  
--c-on-sink-strong: #FFFFFF;  
--c-hero-text:      #E7EFF5;  
--c-overlay:        #093d8ceb; 
--c-glass:          #ffffff24; 
--c-hairline-dark:  #ffffff29; 
--f-head-latin: "Fraunces", Georgia, "Times New Roman", serif;
--f-body-latin: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
--f-head-tamil: "Noto Serif Tamil", "Fraunces", Georgia, serif;
--f-body-tamil: "Noto Sans Tamil", "Inter", "Latha", system-ui, sans-serif;
--f-head: var(--f-head-latin);
--f-body: var(--f-body-latin);
--fs-300: 0.833rem;   
--fs-400: 1rem;       
--fs-500: 1.25rem;    
--fs-600: clamp(1.375rem, 1.284rem + 0.41vw, 1.5625rem);  
--fs-700: clamp(1.625rem, 1.473rem + 0.68vw, 1.953rem);   
--fs-800: clamp(2rem,     1.786rem + 0.95vw, 2.441rem);   
--fs-900: clamp(2.5rem,   2.232rem + 1.19vw, 3.052rem);   
--fs-1000: clamp(3rem,    2.604rem + 1.76vw, 3.815rem);   
--lh-display: 1.08;   
--lh-tight: 1.2;      
--lh-body:  1.6;
--lh-tamil: 1.7;      
--measure: 68ch;      
--measure-wide: 74ch; 
--s-1: 4px;
--s-2: 8px;
--s-3: 12px;
--s-4: 16px;
--s-5: 24px;
--s-6: 32px;
--s-7: 48px;
--s-8: 64px;
--s-9: 96px;
--s-10: 128px;
--gutter:        clamp(1rem, 0.85rem + 0.75vw, 1.5rem);   
--space-section: clamp(3rem, 2.5rem + 2.5vw, 4rem);       
--space-head:    clamp(2.5rem, 2.1rem + 2vw, 3rem);       
--reveal-shift: 20px;   
--touch: 44px;          
--hairline: 1px;
--focus-width: 3px;
--focus-offset: 2px;
--r-sm: 4px;
--r-md: 6px;
--r-pill: 999px;
--r-button: 0;
--r-card: var(--r-md);
--r-input: var(--r-sm);
--shadow-xs:   0 1px 2px rgba(10, 32, 54, 0.06);
--shadow-sm:   0 1px 2px rgba(10, 32, 54, 0.05), 0 3px 8px rgba(10, 32, 54, 0.06);
--shadow-md:   0 4px 10px rgba(10, 32, 54, 0.07), 0 2px 4px rgba(10, 32, 54, 0.05);
--shadow-card: var(--shadow-sm);
--shadow-drawer: 0 0 0 100vmax rgba(10, 32, 54, 0.45), -8px 0 24px rgba(10, 32, 54, 0.25);
--wrap: 1180px;
--wrap-text: 760px;
--wrap-wide: 1320px;
--header-offset: 5.5rem; 
--nav-h: 68px;
--nav-bar-min:         1080px;
--header-utility-h:    2.3rem;
--masthead-h:          4.5rem;    
--masthead-h-scrolled: 3.75rem;   
--brand-crest:         2.85rem;   
--brand-crest-scrolled: 2.6rem;   
--brand-crest-sm:      2.5rem;    
--brand-name-size:     1.1rem;    
--nav-link-size:      0.72rem;   
--nav-link-size-ta:   0.8rem;
--nav-gap:            clamp(0.4rem, -0.15rem + 1vw, 1.2rem);
--nav-gap-ta:         clamp(0.3rem, -0.2rem + 0.85vw, 0.95rem);
--nav-tracking:       0.045em;
--nav-active-line:    2px;
--line-height-ui-ta:  var(--lh-tight);
--dropdown-w:         15rem;     
--drawer-w:           min(23rem, 90vw);
--identity-pattern-opacity: 0.1;  
--identity-pattern-tile:    52px;
--khatam-mask: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%2752%27%20height%3D%2752%27%20viewBox%3D%270%200%2052%2052%27%3E%3Cg%20fill%3D%27none%27%20stroke%3D%27%23fff%27%20stroke-width%3D%271.25%27%20stroke-linejoin%3D%27round%27%20shape-rendering%3D%27geometricPrecision%27%3E%3Cpath%20d%3D%27M51%2026L35.239%2029.827L43.678%2043.678L29.827%2035.239L26%2051L22.173%2035.239L8.322%2043.678L16.761%2029.827L1%2026L16.761%2022.173L8.322%208.322L22.173%2016.761L26%201L29.827%2016.761L43.678%208.322L35.239%2022.173ZM25%200L9.239%203.827L17.678%2017.678L3.827%209.239L0%2025L-3.827%209.239L-17.678%2017.678L-9.239%203.827L-25%200L-9.239%20-3.827L-17.678%20-17.678L-3.827%20-9.239L0%20-25L3.827%20-9.239L17.678%20-17.678L9.239%20-3.827ZM77%200L61.239%203.827L69.678%2017.678L55.827%209.239L52%2025L48.173%209.239L34.322%2017.678L42.761%203.827L27%200L42.761%20-3.827L34.322%20-17.678L48.173%20-9.239L52%20-25L55.827%20-9.239L69.678%20-17.678L61.239%20-3.827ZM25%2052L9.239%2055.827L17.678%2069.678L3.827%2061.239L0%2077L-3.827%2061.239L-17.678%2069.678L-9.239%2055.827L-25%2052L-9.239%2048.173L-17.678%2034.322L-3.827%2042.761L0%2027L3.827%2042.761L17.678%2034.322L9.239%2048.173ZM77%2052L61.239%2055.827L69.678%2069.678L55.827%2061.239L52%2077L48.173%2061.239L34.322%2069.678L42.761%2055.827L27%2052L42.761%2048.173L34.322%2034.322L48.173%2042.761L52%2027L55.827%2042.761L69.678%2034.322L61.239%2048.173ZM13%209.7L16.3%2013L13%2016.3L9.7%2013ZM39%209.7L42.3%2013L39%2016.3L35.7%2013ZM13%2035.7L16.3%2039L13%2042.3L9.7%2039ZM39%2035.7L42.3%2039L39%2042.3L35.7%2039Z%27%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E") 0 0 / var(--identity-pattern-tile) var(--identity-pattern-tile) repeat;
--footer-pattern-opacity:   0.04; 
--header-collapse-at: 150;
--header-expand-at:   48;
--hero-slide-height: 36rem;    
--hero-media-min: 19rem;       
--hero-fade-duration: 800ms;
--hero-slide-interval: 3000ms; 
--hero-x-fade:     0.5s;       
--hero-x-tx:       0.58s;      
--hero-x-tx-long:  0.68s;      
--hero-dot-size: 0.75rem;
--home-photo-filter: saturate(0.9) sepia(0.03);
--home-about-photo: 28rem;
--dur-fast: 180ms;   
--dur: 450ms;
--ease: cubic-bezier(0.22, 0.61, 0.36, 1);
}
@media (prefers-reduced-motion: reduce) {
:root { --dur: 0ms; --dur-fast: 0ms; }
}
@font-face {
font-family: "Inter";
font-style: normal;
font-weight: 400 600;
font-display: swap;
src: url("/assets/fonts/inter-400-latin.woff2") format("woff2");
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
font-family: "Inter";
font-style: normal;
font-weight: 400 600;
font-display: swap;
src: url("/assets/fonts/inter-400-latin-ext.woff2") format("woff2");
unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
font-family: "Fraunces";
font-style: normal;
font-weight: 600;
font-display: swap;
src: url("/assets/fonts/fraunces-600-latin.woff2") format("woff2");
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
font-family: "Fraunces";
font-style: normal;
font-weight: 600;
font-display: swap;
src: url("/assets/fonts/fraunces-600-latin-ext.woff2") format("woff2");
unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
font-family: "Noto Sans Tamil";
font-style: normal;
font-weight: 400 600;
font-display: swap;
src: url("/assets/fonts/noto-sans-tamil-400-tamil.woff2") format("woff2");
unicode-range: U+0964-0965, U+0B82-0BFA, U+200C-200D, U+20B9, U+25CC;
}
@font-face {
font-family: "Noto Sans Tamil";
font-style: normal;
font-weight: 400 600;
font-display: swap;
src: url("/assets/fonts/noto-sans-tamil-400-latin.woff2") format("woff2");
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+2000-206F, U+2074, U+20AC, U+2122, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
font-family: "Noto Serif Tamil";
font-style: normal;
font-weight: 600;
font-display: swap;
src: url("/assets/fonts/noto-serif-tamil-600-tamil.woff2") format("woff2");
unicode-range: U+0964-0965, U+0B82-0BFA, U+200C-200D, U+20B9, U+25CC;
}
@font-face {
font-family: "Noto Serif Tamil";
font-style: normal;
font-weight: 600;
font-display: swap;
src: url("/assets/fonts/noto-serif-tamil-600-latin.woff2") format("woff2");
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+2000-206F, U+2074, U+20AC, U+2122, U+2212, U+FEFF, U+FFFD;
}
:root[lang="ta"] {
--f-head: var(--f-head-tamil);
--f-body: var(--f-body-tamil);
--lh-body: var(--lh-tamil);
--fs-400:  1rem;                                           
--fs-500:  1.125rem;                                       
--fs-600:  1.25rem;                                        
--fs-700:  clamp(1.375rem, 1.284rem + 0.41vw, 1.5625rem);  
--fs-800:  clamp(1.625rem, 1.473rem + 0.68vw, 1.953rem);   
--fs-900:  clamp(2rem,     1.786rem + 0.95vw, 2.441rem);   
--fs-1000: clamp(2.5rem,   2.232rem + 1.19vw, 3.052rem);   
}
*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; }
html {
-webkit-text-size-adjust: 100%;
scroll-behavior: smooth;
scroll-padding-top: var(--header-offset);   
color-scheme: light;                        
}
@media (prefers-reduced-motion: reduce) {
html { scroll-behavior: auto; }
*, *::before, *::after {
animation-duration: 0.01ms !important;
animation-iteration-count: 1 !important;
transition-duration: 0.01ms !important;
}
}
body {
font-family: var(--f-body);
font-size: var(--fs-400);
line-height: var(--lh-body);
color: var(--c-ink);
background: var(--c-bg);
-webkit-font-smoothing: antialiased;
text-rendering: optimizeLegibility;
}
h1, h2, h3, h4 {
font-family: var(--f-head);
font-weight: 600;
line-height: var(--lh-tight);
color: var(--c-ink);
text-wrap: balance;
}
h1 { font-size: var(--fs-800); line-height: var(--lh-display); }
h2 { font-size: var(--fs-700); }
h3 { font-size: var(--fs-600); }
h4 { font-size: var(--fs-500); }
p + p { margin-top: var(--s-4); }
p { text-wrap: pretty; }
a { color: var(--c-brand); text-decoration-thickness: 1px; text-underline-offset: 2px; }
a:hover { color: var(--c-brand-hover); }
img, svg, video { display: block; max-width: 100%; height: auto; }
input, button, select, textarea { font: inherit; color: inherit; min-width: 0; }
ul, ol { padding-left: var(--s-5); }
li + li { margin-top: var(--s-1); }
hr { border: 0; border-top: 1px solid var(--c-line); margin: var(--s-6) 0; }
table { border-collapse: collapse; width: 100%; }
th, td { text-align: left; padding: var(--s-3) var(--s-4); border-bottom: 1px solid var(--c-line); }
th { font-family: var(--f-body); font-weight: 600; }
:focus-visible {
outline: var(--focus-width) solid var(--c-focus);
outline-offset: var(--focus-offset);
}
::selection { background: var(--c-brand-tint); }
.skip-link {
position: absolute;
left: var(--s-3);
top: var(--s-3);
z-index: 200;
padding: var(--s-2) var(--s-4);
background: var(--c-brand);
color: var(--c-on-brand);
border-radius: var(--r-sm);
transform: translateY(-200%);
transition: transform var(--dur) var(--ease);
}
.skip-link:focus { transform: translateY(0); color: var(--c-on-brand); }
.wrap { width: 100%; max-width: var(--wrap); margin-inline: auto; padding-inline: var(--gutter); }
.wrap--wide { max-width: var(--wrap-wide); }
.wrap--text { max-width: var(--wrap-text); }
.prose { max-width: var(--measure); }
.prose > * + * { margin-top: var(--s-4); }
.prose h2 { margin-top: var(--s-7); }
.prose h3 { margin-top: var(--s-6); }
.prose img { border-radius: var(--r-md); margin-block: var(--s-5); }
.prose ul, .prose ol { padding-left: var(--s-5); }
.visually-hidden {
position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
.muted { color: var(--c-ink-faint); font-size: var(--fs-300); }
.flow > * + * { margin-top: var(--flow-space, var(--s-4)); }
.grid-auto {
display: grid;
gap: var(--grid-gap, var(--s-5));
grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--grid-min, 18rem)), 1fr));
}
.stack-center { display: grid; justify-items: center; text-align: center; }
.site-header { position: sticky; top: 0; z-index: 100; background: var(--c-bg); }
.header-utility {
background: var(--c-bg-sink);
color: var(--c-on-sink-soft);
overflow: hidden;
max-height: 3rem;
transition: max-height var(--dur) var(--ease), opacity var(--dur) var(--ease);
}
.header-utility a:focus-visible { outline-color: var(--c-focus-on-dark); }
.header-utility__inner {
min-height: var(--header-utility-h);
display: flex; align-items: center; justify-content: space-between; gap: var(--s-5);
}
.header-utility__cred {
margin: 0; font-size: 0.66rem; font-weight: 600;
letter-spacing: 0.14em; text-transform: uppercase; color: var(--c-on-sink-soft);
white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.header-meta { display: flex; align-items: center; gap: var(--s-4); flex: none; font-size: 0.72rem; }
@media (max-width: 1200px) { .header-meta--utility .header-meta__item--email { display: none; } }
.header-meta__item {
display: inline-flex; align-items: center; gap: 0.45em;
color: var(--c-on-sink); text-decoration: none; white-space: nowrap;
transition: color var(--dur-fast) var(--ease);
}
.header-meta__item:hover { color: var(--c-on-sink-strong); }
.header-meta__lang { font-weight: 700; color: var(--c-accent); }
.header-meta__lang:hover { color: var(--c-accent); text-decoration: underline; text-underline-offset: 3px; }
.header-meta__social { display: inline-flex; align-items: center; gap: var(--s-3); }
.header-meta__social a { display: inline-flex; color: var(--c-on-sink-soft); }
.header-meta__social a:hover { color: var(--c-on-sink-strong); }
.hm-icon { flex: none; }
.masthead {
position: relative; isolation: isolate;
background: var(--c-bg);
border-bottom: 2px solid var(--c-accent);   
transition: box-shadow var(--dur) var(--ease);
}
.masthead::before {
content: ""; position: absolute; inset: 0 42% 0 0; z-index: -1; pointer-events: none;
background-color: var(--c-accent);
-webkit-mask: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%2752%27%20height%3D%2752%27%20viewBox%3D%270%200%2052%2052%27%3E%3Cg%20fill%3D%27none%27%20stroke%3D%27%23fff%27%20stroke-width%3D%271.25%27%20stroke-linejoin%3D%27round%27%20shape-rendering%3D%27geometricPrecision%27%3E%3Cpath%20d%3D%27M51%2026L35.239%2029.827L43.678%2043.678L29.827%2035.239L26%2051L22.173%2035.239L8.322%2043.678L16.761%2029.827L1%2026L16.761%2022.173L8.322%208.322L22.173%2016.761L26%201L29.827%2016.761L43.678%208.322L35.239%2022.173ZM25%200L9.239%203.827L17.678%2017.678L3.827%209.239L0%2025L-3.827%209.239L-17.678%2017.678L-9.239%203.827L-25%200L-9.239%20-3.827L-17.678%20-17.678L-3.827%20-9.239L0%20-25L3.827%20-9.239L17.678%20-17.678L9.239%20-3.827ZM77%200L61.239%203.827L69.678%2017.678L55.827%209.239L52%2025L48.173%209.239L34.322%2017.678L42.761%203.827L27%200L42.761%20-3.827L34.322%20-17.678L48.173%20-9.239L52%20-25L55.827%20-9.239L69.678%20-17.678L61.239%20-3.827ZM25%2052L9.239%2055.827L17.678%2069.678L3.827%2061.239L0%2077L-3.827%2061.239L-17.678%2069.678L-9.239%2055.827L-25%2052L-9.239%2048.173L-17.678%2034.322L-3.827%2042.761L0%2027L3.827%2042.761L17.678%2034.322L9.239%2048.173ZM77%2052L61.239%2055.827L69.678%2069.678L55.827%2061.239L52%2077L48.173%2061.239L34.322%2069.678L42.761%2055.827L27%2052L42.761%2048.173L34.322%2034.322L48.173%2042.761L52%2027L55.827%2042.761L69.678%2034.322L61.239%2048.173ZM13%209.7L16.3%2013L13%2016.3L9.7%2013ZM39%209.7L42.3%2013L39%2016.3L35.7%2013ZM13%2035.7L16.3%2039L13%2042.3L9.7%2039ZM39%2035.7L42.3%2039L39%2042.3L35.7%2039Z%27%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E") 0 0 / var(--identity-pattern-tile) var(--identity-pattern-tile) repeat;
mask: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%2752%27%20height%3D%2752%27%20viewBox%3D%270%200%2052%2052%27%3E%3Cg%20fill%3D%27none%27%20stroke%3D%27%23fff%27%20stroke-width%3D%271.25%27%20stroke-linejoin%3D%27round%27%20shape-rendering%3D%27geometricPrecision%27%3E%3Cpath%20d%3D%27M51%2026L35.239%2029.827L43.678%2043.678L29.827%2035.239L26%2051L22.173%2035.239L8.322%2043.678L16.761%2029.827L1%2026L16.761%2022.173L8.322%208.322L22.173%2016.761L26%201L29.827%2016.761L43.678%208.322L35.239%2022.173ZM25%200L9.239%203.827L17.678%2017.678L3.827%209.239L0%2025L-3.827%209.239L-17.678%2017.678L-9.239%203.827L-25%200L-9.239%20-3.827L-17.678%20-17.678L-3.827%20-9.239L0%20-25L3.827%20-9.239L17.678%20-17.678L9.239%20-3.827ZM77%200L61.239%203.827L69.678%2017.678L55.827%209.239L52%2025L48.173%209.239L34.322%2017.678L42.761%203.827L27%200L42.761%20-3.827L34.322%20-17.678L48.173%20-9.239L52%20-25L55.827%20-9.239L69.678%20-17.678L61.239%20-3.827ZM25%2052L9.239%2055.827L17.678%2069.678L3.827%2061.239L0%2077L-3.827%2061.239L-17.678%2069.678L-9.239%2055.827L-25%2052L-9.239%2048.173L-17.678%2034.322L-3.827%2042.761L0%2027L3.827%2042.761L17.678%2034.322L9.239%2048.173ZM77%2052L61.239%2055.827L69.678%2069.678L55.827%2061.239L52%2077L48.173%2061.239L34.322%2069.678L42.761%2055.827L27%2052L42.761%2048.173L34.322%2034.322L48.173%2042.761L52%2027L55.827%2042.761L69.678%2034.322L61.239%2048.173ZM13%209.7L16.3%2013L13%2016.3L9.7%2013ZM39%209.7L42.3%2013L39%2016.3L35.7%2013ZM13%2035.7L16.3%2039L13%2042.3L9.7%2039ZM39%2035.7L42.3%2039L39%2042.3L35.7%2039Z%27%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E") 0 0 / var(--identity-pattern-tile) var(--identity-pattern-tile) repeat;
opacity: 0.09;
filter: blur(0.3px);
}
.masthead__inner {
min-height: var(--masthead-h);
display: flex; align-items: center; gap: var(--s-4);
padding-block: 0;
}
.brand {
flex: none;
display: flex; align-items: center; gap: var(--s-3); min-width: 0;
text-decoration: none; color: var(--c-ink);
}
.brand__crest {
height: var(--brand-crest); width: auto; object-fit: contain; flex: none;
transition: height var(--dur) var(--ease);
}
.brand__name {
font-family: var(--f-head-latin); font-weight: 600;
font-size: var(--brand-name-size); line-height: 1.12; letter-spacing: 0.004em;
text-transform: uppercase;
color: var(--c-ink);
}
.brand__name-line { display: block; white-space: nowrap; }
.brand:hover .brand__name, .brand:focus-visible .brand__name { color: var(--c-brand); }
.brand__name:lang(ta) { font-family: var(--f-head-tamil); letter-spacing: normal; line-height: var(--lh-tamil); }
.site-nav { display: flex; flex: none; margin-inline-start: auto; }
.nav-toggle {
display: inline-flex; align-items: center; gap: var(--s-2);
min-height: var(--touch); padding-inline: var(--s-2);
background: transparent; border: 0; cursor: pointer;
color: var(--c-ink); font: inherit; font-weight: 700;
font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.08em;
}
.nav-toggle__icon { position: relative; width: 20px; height: 12px; flex: none; }
.nav-toggle__icon span {
position: absolute; left: 0; width: 100%; height: 2px; border-radius: 2px; background: currentColor;
transition: transform var(--dur-fast) var(--ease), opacity var(--dur-fast) var(--ease);
}
.nav-toggle__icon span:nth-child(1) { top: 0; }
.nav-toggle__icon span:nth-child(2) { top: 5px; }
.nav-toggle__icon span:nth-child(3) { top: 10px; }
.nav-toggle[aria-expanded="true"] .nav-toggle__icon span:nth-child(1) { transform: translateY(5px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] .nav-toggle__icon span:nth-child(2) { opacity: 0; }
.nav-toggle[aria-expanded="true"] .nav-toggle__icon span:nth-child(3) { transform: translateY(-5px) rotate(-45deg); }
.site-nav__panel {
position: fixed; inset: 0 0 0 auto; z-index: 210;
width: var(--drawer-w);
display: flex; flex-direction: column;
background: var(--c-bg);
overflow-y: auto; overscroll-behavior: contain;
box-shadow: var(--shadow-drawer);
clip-path: inset(0 0 0 100%); visibility: hidden; pointer-events: none;
transition: clip-path var(--dur) var(--ease), visibility 0s var(--dur);
}
.site-nav__panel.is-open {
clip-path: inset(0); visibility: visible; pointer-events: auto;
transition: clip-path var(--dur) var(--ease);
}
.site-nav__panel-head {
display: flex; align-items: center; justify-content: space-between; gap: var(--s-3);
padding: var(--s-3) var(--s-4);
border-bottom: var(--hairline) solid var(--c-line);
font-family: var(--f-head-latin); font-weight: 700; font-size: var(--fs-400); color: var(--c-ink);
}
.site-nav__close {
display: inline-flex; align-items: center; justify-content: center;
width: var(--touch); height: var(--touch); flex: none;
background: none; border: 0; cursor: pointer; color: var(--c-ink-soft);
}
.site-nav__close:hover { color: var(--c-brand); }
.site-nav__list { list-style: none; margin: 0; padding: 0; flex: 1 0 auto; }
.nav-item { position: relative; border-bottom: var(--hairline) solid var(--c-line-soft); }
.nav-item__link {
display: block; padding: var(--s-4); padding-inline-end: calc(var(--touch) + var(--s-2));
text-decoration: none; color: var(--c-ink); font-weight: 600;
}
.nav-item__link:hover, .nav-item__link:focus-visible { color: var(--c-brand); background: var(--c-bg-alt); }
.nav-item.is-active > .nav-item__link { color: var(--c-brand); box-shadow: inset 3px 0 0 var(--c-accent); }
.nav-item__link[aria-current="page"] { color: var(--c-brand); }
.nav-item__toggle {
position: absolute; inset-block-start: 0; inset-inline-end: 0;
display: flex; align-items: center; justify-content: center;
width: var(--touch); height: calc(1.2em + 2 * var(--s-4));
list-style: none; cursor: pointer; color: var(--c-ink-faint);
}
.nav-item__toggle::-webkit-details-marker { display: none; }
.nav-item__toggle svg { transition: transform var(--dur-fast) var(--ease); }
.nav-item__group[open] > .nav-item__toggle svg { transform: rotate(-180deg); }
.nav-submenu { list-style: none; margin: 0; padding: var(--s-1) 0 var(--s-3); background: var(--c-bg-alt); }
.nav-submenu a {
display: block; padding: var(--s-2) var(--s-4) var(--s-2) var(--s-7);
text-decoration: none; color: var(--c-ink-soft); font-size: var(--fs-300);
}
.nav-submenu a:hover, .nav-submenu a:focus-visible { color: var(--c-brand); background: var(--c-brand-tint); }
.nav-submenu a[aria-current="page"] { color: var(--c-brand); font-weight: 700; }
.site-nav__panel-foot {
padding: var(--s-4);
border-top: var(--hairline) solid var(--c-line);
display: flex; flex-direction: column; gap: var(--s-4);
}
.site-nav__panel-foot .btn { width: 100%; }
.header-meta--drawer { flex-direction: column; align-items: stretch; gap: 0; font-size: var(--fs-300); }
.header-meta--drawer .header-meta__item { min-height: var(--touch); color: var(--c-ink-soft); }
.header-meta--drawer .header-meta__item:hover { color: var(--c-brand); }
.header-meta--drawer .header-meta__lang { color: var(--c-brand); }
.header-meta--drawer .header-meta__social { gap: var(--s-4); padding-block: var(--s-2); }
.header-meta--drawer .header-meta__social a { min-height: var(--touch); min-width: var(--touch); justify-content: center; color: var(--c-ink-soft); }
@media (max-width: 1079px) {
html { overflow-x: clip; }
.header-utility { display: none; }   
.masthead__inner { gap: var(--s-3); min-height: 4.25rem; }
.brand__crest { height: var(--brand-crest-sm); width: auto; }
body.nav-open { overflow: hidden; }
html:not(.js-enabled) .nav-toggle { display: none; }
html:not(.js-enabled) .site-header { position: static; }
html:not(.js-enabled) .masthead__inner { flex-wrap: wrap; }
html:not(.js-enabled) .site-nav { flex-basis: 100%; margin-inline-start: 0; }
html:not(.js-enabled) .site-nav__panel {
position: static; width: 100%;
clip-path: none; visibility: visible; pointer-events: auto; box-shadow: none;
border-top: var(--hairline) solid var(--c-line);
}
html:not(.js-enabled) .site-nav__panel-head { display: none; }
}
@media (max-width: 420px) {
.brand__name { font-size: 0.95rem; line-height: 1.08; }
}
@media (max-width: 380px) {
.nav-toggle__text { display: none; }             
.nav-toggle { padding-inline: var(--s-1); }
}
@media (min-width: 1080px) {
.nav-toggle, .site-nav__panel-head, .site-nav__panel-foot { display: none; }
.brand { gap: var(--s-3); }
.brand__name {
border-inline-start: 2px solid var(--c-accent);
padding-inline-start: var(--s-3);
}
@media (min-width: 1280px) {
.brand { gap: var(--s-4); }
.brand__name { padding-inline-start: var(--s-4); }
}
.site-nav { align-self: stretch; }
.site-nav__panel {
position: static; width: auto; flex-direction: row; align-items: stretch;
clip-path: none; visibility: visible; pointer-events: auto; background: none;
box-shadow: none; overflow: visible; transition: none;
}
.site-nav__list { display: flex; align-items: stretch; gap: var(--nav-gap); }
.nav-item { border: 0; display: flex; align-items: center; position: relative; }
.nav-item__link {
display: flex; align-items: center; min-height: var(--masthead-h);
padding: 0 0.38rem; box-shadow: none;
font-family: var(--f-body); font-size: var(--nav-link-size); font-weight: 600;
letter-spacing: var(--nav-tracking); text-transform: uppercase;
color: var(--c-ink-soft); white-space: nowrap;
transition: color var(--dur-fast) var(--ease);
}
@media (max-width: 1199px) {
.site-nav__list { gap: 0.18rem; }
.nav-item__link { padding: 0 0.14rem; letter-spacing: 0.02em; }
}
.nav-item > .nav-item__link::after {
content: ""; position: absolute; left: 0.3rem; right: 0.3rem; bottom: -1px;
height: var(--nav-active-line); background: var(--c-accent);
transform: scaleX(0); transform-origin: left;
transition: transform var(--dur-fast) var(--ease);
}
.nav-item:hover > .nav-item__link, .nav-item:focus-within > .nav-item__link,
.nav-item.is-active > .nav-item__link { color: var(--c-brand); box-shadow: none; }
.nav-item:hover > .nav-item__link::after, .nav-item:focus-within > .nav-item__link::after,
.nav-item.is-active > .nav-item__link::after { transform: scaleX(1); }
.nav-item.is-active > .nav-item__link::after { height: 3px; }
.nav-item__group { display: flex; align-items: center; }
.nav-item__toggle {
position: static; width: auto; height: auto;
padding: 0.3rem 0.1rem 0.3rem 0; color: var(--c-ink-faint);
transition: color var(--dur-fast) var(--ease);
}
.nav-item:hover .nav-item__toggle, .nav-item:focus-within .nav-item__toggle,
.nav-item__group[open] > .nav-item__toggle { color: var(--c-brand); }
.nav-item__group > .nav-submenu {
position: absolute; top: 100%; left: 0; z-index: 60;
min-width: var(--dropdown-w); width: max-content;
max-width: min(22rem, calc(100vw - 2rem));
padding: var(--s-2);
background: var(--c-bg);
border: var(--hairline) solid var(--c-line);
border-top: 2px solid var(--c-accent);
border-radius: 0 0 var(--r-md) var(--r-md);
box-shadow: var(--shadow-md);
}
.nav-item:nth-last-child(-n+4) .nav-item__group > .nav-submenu { left: auto; right: 0; }
.nav-item__group > .nav-submenu a {
padding: var(--s-3); border-radius: var(--r-sm);
color: var(--c-ink); font-size: 0.9rem;
}
.nav-item__group > .nav-submenu a:hover, .nav-item__group > .nav-submenu a:focus-visible { background: var(--c-brand-tint); color: var(--c-brand-hover); }
.nav-item__group > .nav-submenu a[aria-current="page"] { color: var(--c-brand); font-weight: 700; }
html[lang="ta"] .site-nav__list { gap: var(--nav-gap-ta); }
html[lang="ta"] .nav-item__link {
font-family: var(--f-body-tamil); font-size: var(--nav-link-size-ta);
text-transform: none; letter-spacing: normal; line-height: var(--line-height-ui-ta);
}
html[lang="ta"] .btn { line-height: var(--line-height-ui-ta); }
.site-header.is-scrolled .header-utility { max-height: 0; opacity: 0; visibility: hidden; }
.site-header.is-scrolled .masthead { box-shadow: var(--shadow-sm); }
.site-header.is-scrolled .masthead__inner { padding-block: 0; min-height: var(--masthead-h-scrolled); }
.site-header.is-scrolled .brand__crest { height: var(--brand-crest-scrolled); }
.site-header.is-scrolled .nav-item__link { min-height: var(--masthead-h-scrolled); }
}
.section { padding-block: var(--space-section); }
.section--alt { background: var(--c-bg-alt); }
.section--tight { padding-block: var(--s-6); }
.section__head { margin-bottom: var(--s-6); }
.section__head h2 { font-size: var(--fs-700); }
.section__head p { color: var(--c-ink-soft); margin-top: var(--s-2); max-width: var(--measure-wide); }
.page-head { background: var(--c-bg-alt); border-bottom: 1px solid var(--c-line); padding-block: var(--space-head); margin-top:var(--s-4); }
.page-head h1 { font-size: var(--fs-800); }
.page-head p { color: var(--c-ink-soft); margin-top: var(--s-3); max-width: var(--measure); }
.site-footer { position: relative; isolation: isolate; background: var(--c-bg-sink); color: var(--c-on-sink); padding-block: var(--s-7) var(--s-5); }
.site-footer::before {
content:""; position:absolute; inset:0; z-index:-1; pointer-events:none;
background-color:var(--c-on-sink-strong);
-webkit-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%2752%27%20height%3D%2752%27%20viewBox%3D%270%200%2052%2052%27%3E%3Cg%20fill%3D%27none%27%20stroke%3D%27%23fff%27%20stroke-width%3D%271.25%27%20stroke-linejoin%3D%27round%27%20shape-rendering%3D%27geometricPrecision%27%3E%3Cpath%20d%3D%27M51%2026L35.239%2029.827L43.678%2043.678L29.827%2035.239L26%2051L22.173%2035.239L8.322%2043.678L16.761%2029.827L1%2026L16.761%2022.173L8.322%208.322L22.173%2016.761L26%201L29.827%2016.761L43.678%208.322L35.239%2022.173ZM25%200L9.239%203.827L17.678%2017.678L3.827%209.239L0%2025L-3.827%209.239L-17.678%2017.678L-9.239%203.827L-25%200L-9.239%20-3.827L-17.678%20-17.678L-3.827%20-9.239L0%20-25L3.827%20-9.239L17.678%20-17.678L9.239%20-3.827ZM77%200L61.239%203.827L69.678%2017.678L55.827%209.239L52%2025L48.173%209.239L34.322%2017.678L42.761%203.827L27%200L42.761%20-3.827L34.322%20-17.678L48.173%20-9.239L52%20-25L55.827%20-9.239L69.678%20-17.678L61.239%20-3.827ZM25%2052L9.239%2055.827L17.678%2069.678L3.827%2061.239L0%2077L-3.827%2061.239L-17.678%2069.678L-9.239%2055.827L-25%2052L-9.239%2048.173L-17.678%2034.322L-3.827%2042.761L0%2027L3.827%2042.761L17.678%2034.322L9.239%2048.173ZM77%2052L61.239%2055.827L69.678%2069.678L55.827%2061.239L52%2077L48.173%2061.239L34.322%2069.678L42.761%2055.827L27%2052L42.761%2048.173L34.322%2034.322L48.173%2042.761L52%2027L55.827%2042.761L69.678%2034.322L61.239%2048.173ZM13%209.7L16.3%2013L13%2016.3L9.7%2013ZM39%209.7L42.3%2013L39%2016.3L35.7%2013ZM13%2035.7L16.3%2039L13%2042.3L9.7%2039ZM39%2035.7L42.3%2039L39%2042.3L35.7%2039Z%27%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E") 0 0 / var(--identity-pattern-tile) var(--identity-pattern-tile) repeat;
mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%2752%27%20height%3D%2752%27%20viewBox%3D%270%200%2052%2052%27%3E%3Cg%20fill%3D%27none%27%20stroke%3D%27%23fff%27%20stroke-width%3D%271.25%27%20stroke-linejoin%3D%27round%27%20shape-rendering%3D%27geometricPrecision%27%3E%3Cpath%20d%3D%27M51%2026L35.239%2029.827L43.678%2043.678L29.827%2035.239L26%2051L22.173%2035.239L8.322%2043.678L16.761%2029.827L1%2026L16.761%2022.173L8.322%208.322L22.173%2016.761L26%201L29.827%2016.761L43.678%208.322L35.239%2022.173ZM25%200L9.239%203.827L17.678%2017.678L3.827%209.239L0%2025L-3.827%209.239L-17.678%2017.678L-9.239%203.827L-25%200L-9.239%20-3.827L-17.678%20-17.678L-3.827%20-9.239L0%20-25L3.827%20-9.239L17.678%20-17.678L9.239%20-3.827ZM77%200L61.239%203.827L69.678%2017.678L55.827%209.239L52%2025L48.173%209.239L34.322%2017.678L42.761%203.827L27%200L42.761%20-3.827L34.322%20-17.678L48.173%20-9.239L52%20-25L55.827%20-9.239L69.678%20-17.678L61.239%20-3.827ZM25%2052L9.239%2055.827L17.678%2069.678L3.827%2061.239L0%2077L-3.827%2061.239L-17.678%2069.678L-9.239%2055.827L-25%2052L-9.239%2048.173L-17.678%2034.322L-3.827%2042.761L0%2027L3.827%2042.761L17.678%2034.322L9.239%2048.173ZM77%2052L61.239%2055.827L69.678%2069.678L55.827%2061.239L52%2077L48.173%2061.239L34.322%2069.678L42.761%2055.827L27%2052L42.761%2048.173L34.322%2034.322L48.173%2042.761L52%2027L55.827%2042.761L69.678%2034.322L61.239%2048.173ZM13%209.7L16.3%2013L13%2016.3L9.7%2013ZM39%209.7L42.3%2013L39%2016.3L35.7%2013ZM13%2035.7L16.3%2039L13%2042.3L9.7%2039ZM39%2035.7L42.3%2039L39%2042.3L35.7%2039Z%27%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E") 0 0 / var(--identity-pattern-tile) var(--identity-pattern-tile) repeat;
opacity:var(--footer-pattern-opacity);
filter:blur(0.3px);
}
.site-footer__identity { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:var(--s-3) var(--s-6); padding-bottom:var(--s-4); margin-bottom:var(--s-4); border-bottom:var(--hairline) solid var(--c-hairline-dark); }
.site-footer__name { font-family:var(--f-head); font-size:var(--fs-600); line-height:var(--lh-tight); color:var(--c-on-sink-strong); max-width:32ch; text-wrap:balance; }
.site-footer__language { display:inline-flex; align-items:center; gap:0.45em; min-height:var(--touch); font-size:var(--fs-300); }
.site-footer .site-footer__language { color:var(--c-accent); }
.site-footer .site-footer__language:hover { color:var(--c-on-sink-strong); }
.site-footer a { color:var(--c-on-sink); text-decoration:none; }
.site-footer a:hover { color:var(--c-on-sink-strong); text-decoration:underline; }
.site-footer a:focus-visible { outline-color:var(--c-focus-on-dark); }
.site-footer h2 { color:var(--c-on-sink-strong); font-family:var(--f-body); font-size:var(--fs-400); line-height:var(--lh-body); margin-bottom:var(--s-2); overflow-wrap:anywhere; }
.site-footer p,.site-footer a { overflow-wrap:anywhere; }
.site-footer__cols { display:grid; gap:var(--s-5) var(--s-6); grid-template-columns:repeat(2,minmax(0,1fr)); font-size:var(--fs-300); }
.site-footer__cols > * { min-width:0; }
.site-footer ul { list-style:none; padding:0; }
.site-footer li { margin:0; }
.site-footer__cols li a { display:flex; align-items:center; min-height:var(--s-6); padding-block:var(--s-1); }
.site-footer__contact { grid-column:1 / -1; }
.site-footer__contact p { margin-bottom:var(--s-2); max-width:36ch; }
.site-footer__contact > a { display:block; width:fit-content; max-width:100%; padding-block:var(--s-2); }
.site-footer__meta { margin-top:var(--s-5); padding-top:var(--s-4); border-top:var(--hairline) solid var(--c-hairline-dark); font-size:var(--fs-300); color:var(--c-on-sink-soft); }
.site-footer__legal { display:flex; flex-wrap:wrap; justify-content:space-between; gap:var(--s-2) var(--s-5); margin-top:var(--s-2); }
.site-footer__legal p + p { margin-top:0; }
.site-footer__legal a { display:inline-block; padding-block:var(--s-2); }
@media (min-width:700px) {
.site-footer__cols { grid-template-columns:repeat(4,minmax(0,1fr)); }
}
@media (min-width:1100px) {
.site-footer__cols { grid-template-columns:repeat(4,minmax(0,1fr)) minmax(0,1.6fr); }
.site-footer__contact { grid-column:auto; }
}
.btn {
display: inline-flex; align-items: center; justify-content: center; gap: var(--s-2);
min-height: var(--touch);
font-family: var(--f-body); font-weight: 600; font-size: var(--fs-400); line-height: 1.2;
padding: var(--s-3) var(--s-5);
border-radius: var(--r-button);
border: 1px solid transparent;
text-decoration: none;
cursor: pointer;
transition: background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease);
}
.btn:disabled, .btn[aria-disabled="true"] { opacity: 0.55; cursor: not-allowed; pointer-events: none; }
.btn--primary { background: var(--c-brand); color: var(--c-on-brand); }
.btn--primary:hover { background: var(--c-brand-hover); color: var(--c-on-brand); }
.btn--ghost { border-color: var(--c-line); color: var(--c-brand); background: var(--c-bg); }
.btn--ghost:hover { background: var(--c-brand-tint); }
.btn--small { min-height: 0; padding: var(--s-2) var(--s-4); font-size: var(--fs-300); }
.btn--large { padding: var(--s-4) var(--s-6); font-size: var(--fs-500); }
.btn--accent { background: var(--c-accent); color: var(--c-ink); }
.btn--accent:hover { background: var(--c-accent); filter: brightness(0.95); }
.btn--outline-light { border-color: var(--c-on-sink-strong); color: var(--c-on-sink-strong); }
.btn--outline-light:hover { background: var(--c-glass); }
.eyebrow { color: var(--c-brand); font-size: var(--fs-300); font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.hero-x { position: relative; background: var(--c-bg); overflow: clip; }
.hero-x__inner {
display: grid; gap: var(--s-6);
align-items: center;
padding-block: var(--s-5);   
max-width: 1360px;
}
.hero-x__copy { max-width: 36rem; min-width: 0; }
.hero-x__eyebrow {
display: flex; align-items: center; gap: var(--s-3);
font-size: var(--fs-300); font-weight: 700; letter-spacing: 0.14em;
text-transform: uppercase; color: var(--c-brand);
}
.hero-x__eyebrow::before { content: ""; flex: none; width: 1.75rem; height: 2px; background: var(--c-accent); }
.hero-x__title {
margin-top: var(--s-4);
font-size: var(--fs-900); line-height: var(--lh-display);
letter-spacing: -0.015em; color: var(--c-ink); text-wrap: balance;
}
.hero-x__title span { display: block; color: var(--c-brand); }
.hero-x__lede {
margin-top: var(--s-4); max-width: 34ch;
font-size: var(--fs-500); line-height: var(--lh-body); color: var(--c-ink-soft);
}
.hero-x__actions { margin-top: var(--s-5); display: flex; flex-wrap: wrap; gap: var(--s-3); }
.hero-x__cred {
margin-top: var(--s-5); font-size: var(--fs-300); color: var(--c-ink-faint); letter-spacing: 0.04em;
}
.hero-x__media { display: flex; flex-direction: column; gap: var(--s-3); align-self: center; min-width: 0; }
.hero-x__frame { position: relative; width: 100%; aspect-ratio: 3 / 2; }
.hero-x__spine {
position: absolute; left: 0; top: 0; bottom: 0; width: 3px;
background: var(--c-accent); z-index: 5; pointer-events: none;
}
.hero-x__pic {
position: absolute; inset: 0; overflow: hidden;
background: var(--c-bg-sink);
clip-path: polygon(0 0, 100% 0, 100% 100%, 15% 100%, 0 74%);
}
.hero-x__pic::after {
content: ""; position: absolute; inset: 0; z-index: 2; pointer-events: none;
background: var(--c-bg);
transform: translateX(101%);
animation: hero-wipe .7s var(--ease) .12s both;
}
.hero-x__img {
position: absolute; inset: 0; width: 100%; height: 100%;
object-fit: cover;                 
filter: var(--home-photo-filter);
opacity: 0; z-index: 0;
transition: opacity var(--hero-x-fade) var(--ease);
}
.hero-x__img.is-active  { opacity: 1; z-index: 1; }
.hero-x__img.is-leaving { z-index: 1; }
.hero-x__img.is-entering { opacity: 1; z-index: 2; transition: none; }   
.hero-x__pic { --tx-in: 1.045; --tx-out: 0.975; --tx-diss: 1.015; }
.hero-x__pic[data-tx="dissolve"]    .hero-x__img.is-entering { animation: hero-tx-diss var(--hero-x-tx) var(--ease) both; }
.hero-x__pic[data-tx="crossfade"]   .hero-x__img.is-entering { animation: hero-tx-crossfade var(--hero-x-fade) var(--ease) both; }
.hero-x__pic[data-tx="directional"] .hero-x__img.is-entering { animation: hero-tx-dir var(--hero-x-tx) var(--ease) both; }
.hero-x__pic[data-tx="directional"][data-tx-dir="rev"] .hero-x__img.is-entering { animation-name: hero-tx-dir-rev; }
.hero-x__pic[data-tx="geometric"]   .hero-x__img.is-entering { animation: hero-tx-geo var(--hero-x-tx-long) var(--ease) both; }
.hero-x__pic[data-tx="geometric"][data-tx-dir="rev"] .hero-x__img.is-entering { animation-name: hero-tx-geo-rev; }
.hero-x__pic[data-tx="depth"] .hero-x__img.is-entering { animation: hero-tx-depth-in  var(--hero-x-tx-long) var(--ease) both; }
.hero-x__pic[data-tx="depth"] .hero-x__img.is-leaving  { animation: hero-tx-depth-out var(--hero-x-tx-long) var(--ease) both; }
.hero-x__pic[data-tx="slide-h"] .hero-x__img.is-entering { animation: hero-tx-slide-h var(--hero-x-tx-long) var(--ease) both; }
.hero-x__pic[data-tx="slide-h"][data-tx-dir="rev"] .hero-x__img.is-entering { animation-name: hero-tx-slide-h-rev; }
.hero-x__pic[data-tx="slide-v"] .hero-x__img.is-entering { animation: hero-tx-slide-v var(--hero-x-tx-long) var(--ease) both; }
.hero-x__pic[data-tx="clip-circle"] .hero-x__img.is-entering { animation: hero-tx-circle var(--hero-x-tx-long) var(--ease) both; }
.hero-x__pic[data-tx="zoom-in"]     .hero-x__img.is-entering { animation: hero-tx-zoomin var(--hero-x-tx) var(--ease) both; }
.hero-x__pic[data-tx="blur-focus"]  .hero-x__img.is-entering { animation: hero-tx-blur var(--hero-x-tx-long) var(--ease) both; }
.hero-x__pic[data-tx="cross-zoom"]  .hero-x__img.is-entering { animation: hero-tx-crosszoom-in  var(--hero-x-tx) var(--ease) both; }
.hero-x__pic[data-tx="cross-zoom"]  .hero-x__img.is-leaving  { animation: hero-tx-crosszoom-out var(--hero-x-tx) var(--ease) both; }
.hero-x__pic[data-tx="color-sweep"] .hero-x__img.is-entering { animation: hero-tx-crossfade var(--hero-x-tx) var(--ease) both; }
.hero-x__pic[data-tx="color-sweep"]::before {
content: ""; position: absolute; inset: 0; z-index: 4; pointer-events: none;
background: var(--c-brand); transform: translateX(-100%);
animation: hero-tx-sweep var(--hero-x-tx-long) var(--ease) both;
}
.hero-x__pic[data-tx="directional"] .hero-x__img.is-leaving,
.hero-x__pic[data-tx="geometric"]   .hero-x__img.is-leaving,
.hero-x__pic[data-tx="slide-h"]     .hero-x__img.is-leaving,
.hero-x__pic[data-tx="slide-v"]     .hero-x__img.is-leaving,
.hero-x__pic[data-tx="clip-circle"] .hero-x__img.is-leaving { opacity: 1; transition: none; }
.hero-x__star-stage {
position: absolute; left: -1rem; bottom: -1.25rem; width: 5.25rem; height: 5.25rem;
z-index: 3; pointer-events: none; perspective: 850px;
}
.hero-x__star { display: block; width: 100%; height: 100%; color: var(--c-accent); transform-style: preserve-3d; }
.hero-x__star-outer, .hero-x__star-inner { transform-box: fill-box; transform-origin: center; }
.hero-x__star-plane {
position: absolute; left: 21%; top: 21%; width: 58%; height: 58%; box-sizing: border-box;
border: 1.25px solid var(--c-accent); transform-style: preserve-3d;
}
.hero-x__foot {
display: flex; align-items: center; justify-content: space-between; gap: var(--s-4);
padding-inline-start: var(--s-4);
}
.hero-x__caption {
margin: 0; min-width: 0; font-size: var(--fs-300); color: var(--c-ink-faint);
white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.hero-x__controls {
display: none; flex: none; align-items: center; gap: 2px; color: var(--c-ink-soft);
}
.js-enabled [data-hero-rotator] .hero-x__controls { display: flex; }
.hero-x__btn {
width: 2.25rem; height: 2.25rem; flex: none;
display: inline-flex; align-items: center; justify-content: center;
border: 0; border-radius: var(--r-pill); background: none;
color: var(--c-ink-soft); cursor: pointer;
transition: background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);
}
.hero-x__btn:hover { background: var(--c-bg-alt); color: var(--c-brand); }
.hero-x__count {
font-size: var(--fs-300); font-variant-numeric: tabular-nums; font-weight: 600;
color: var(--c-ink-soft); padding-inline: var(--s-2); white-space: nowrap;
}
.hero-x__ico-play { display: none; }
.hero-x__play.is-paused .hero-x__ico-play { display: block; }
.hero-x__play.is-paused .hero-x__ico-pause { display: none; }
@keyframes hero-in { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
@keyframes hero-wipe { from { transform: translateX(0); } to { transform: translateX(101%); } }
@keyframes hero-tx-diss      { from { opacity: 0; transform: scale(var(--tx-diss)); } to { opacity: 1; transform: scale(1); } }
@keyframes hero-tx-dir       { from { clip-path: inset(0 100% 0 0); } to { clip-path: inset(0 0 0 0); } }   
@keyframes hero-tx-dir-rev   { from { clip-path: inset(0 0 0 100%); } to { clip-path: inset(0 0 0 0); } }   
@keyframes hero-tx-geo       { from { clip-path: polygon(0 0, 0 0, 0 100%, 0 100%); }
to   { clip-path: polygon(0 0, 118% 0, 100% 100%, 0 100%); } }               
@keyframes hero-tx-geo-rev   { from { clip-path: polygon(100% 0, 100% 0, 100% 100%, 100% 100%); }
to   { clip-path: polygon(-18% 0, 100% 0, 100% 100%, 0 100%); } }            
@keyframes hero-tx-depth-in  { from { opacity: 0; transform: scale(var(--tx-in)); }  to { opacity: 1; transform: scale(1); } }
@keyframes hero-tx-depth-out { from { opacity: 1; transform: scale(1); } to { opacity: 0; transform: scale(var(--tx-out)); } }
@keyframes hero-tx-crossfade    { from { opacity: 0; } to { opacity: 1; } }                                                  
@keyframes hero-tx-slide-h      { from { opacity: 0; transform: translateX(6%); }  to { opacity: 1; transform: translateX(0); } }   
@keyframes hero-tx-slide-h-rev  { from { opacity: 0; transform: translateX(-6%); } to { opacity: 1; transform: translateX(0); } }   
@keyframes hero-tx-slide-v      { from { opacity: 0; transform: translateY(6%); }  to { opacity: 1; transform: translateY(0); } }
@keyframes hero-tx-circle       { from { clip-path: circle(0% at 50% 50%); } to { clip-path: circle(75% at 50% 50%); } }
@keyframes hero-tx-zoomin       { from { opacity: 0; transform: scale(1.08); } to { opacity: 1; transform: scale(1); } }
@keyframes hero-tx-blur         { from { opacity: 0; filter: blur(9px); } to { opacity: 1; filter: blur(0); } }
@keyframes hero-tx-crosszoom-in  { from { opacity: 0; transform: scale(1.1); }  to { opacity: 1; transform: scale(1); } }
@keyframes hero-tx-crosszoom-out { from { opacity: 1; transform: scale(1); } to { opacity: 0; transform: scale(0.94); } }
@keyframes hero-tx-sweep        { 0% { transform: translateX(-100%); } 50% { transform: translateX(0); } 100% { transform: translateX(100%); } }
.hero-x__eyebrow { animation: hero-in .5s var(--ease) .05s both; }
.hero-x__title   { animation: hero-in .55s var(--ease) .16s both; }
.hero-x__lede    { animation: hero-in .55s var(--ease) .30s both; }
.hero-x__actions { animation: hero-in .55s var(--ease) .42s both; }
.hero-x__cred    { animation: hero-in .5s var(--ease) .52s both; }
@media (min-width: 900px) {
.hero-x__inner { grid-template-columns: minmax(0, 1fr) minmax(0, 1.22fr); gap: clamp(var(--s-5), 3vw, var(--s-6)); }
}
@media (min-width: 1280px) {
.hero-x__inner { grid-template-columns: minmax(0, 0.82fr) minmax(0, 1.18fr); }
.hero-x__star-stage { width: 6rem; height: 6rem; left: -1.5rem; bottom: -1.5rem; }
}
@media (max-width: 899px) {
.hero-x__inner { grid-template-columns: minmax(0, 1fr); gap: var(--s-3); }
.hero-x__media { order: -1; margin-inline: calc(-1 * var(--gutter)); gap: 0; min-width: 0; }
.hero-x__frame { width: 100%; min-width: 0; aspect-ratio: 4 / 3; max-height: min(42vh, 21rem); }
.hero-x__pic { clip-path: polygon(0 0, 100% 0, 100% 86%, 0 100%); --tx-in: 1.025; --tx-out: 0.99; --tx-diss: 1.008; }
.hero-x__spine { top: 0; bottom: auto; height: 3px; left: 0; right: 0; width: auto; }
.hero-x__star-stage { width: 3.25rem; height: 3.25rem; left: auto; right: var(--s-4); bottom: -0.4rem; }
.hero-x__title { font-size: var(--fs-800); }
.hero-x__lede { font-size: var(--fs-400); margin-top: var(--s-3); }
.hero-x__actions { margin-top: var(--s-4); flex-direction: column; align-items: stretch; }
.hero-x__actions .btn { width: 100%; }
.hero-x__cred { margin-top: var(--s-4); }
.hero-x__foot {
padding-inline: var(--gutter); margin-top: var(--s-3);
justify-content: flex-end;
}
.hero-x__caption { display: none; }   
}
html[lang="ta"] .hero-x__title {
font-size: var(--fs-800);   
letter-spacing: normal; line-height: var(--lh-tight); overflow-wrap: break-word;
}
.story__media img,.campus__cell img,.principal-x__portrait img { filter:var(--home-photo-filter); }
.list-meta { display:flex; align-items:center; gap:var(--s-2); margin-bottom:var(--s-1); flex-wrap:wrap; }
.list-meta__date { display:inline-flex; align-items:center; gap:4px; font-size:var(--fs-300); color:var(--c-ink-soft); }
.list-meta__date .cal-icon { width:14px; height:14px; flex:none; }
.tag { display:inline-flex; align-items:center; padding:2px var(--s-2); border-radius:var(--r-sm); font-size:0.688rem; font-weight:700; text-transform:uppercase; letter-spacing:0.04em; line-height:1.4; }
.tag--circular { background:var(--c-brand-tint); color:var(--c-brand-hover); }
.tag--event    { background:var(--c-warn-bg);    color:var(--c-warn-ink); }
.tag--notice   { background:var(--c-notice-bg);  color:var(--c-notice); }
.feature-card { background:var(--c-bg); border:var(--hairline) solid var(--c-line); border-radius:var(--r-md); padding:var(--s-5); text-decoration:none; color:var(--c-ink); }
a.feature-card:hover,a.feature-card:focus-visible { box-shadow:var(--shadow-card); }
.trust { background:var(--c-bg-alt); border-block:var(--hairline) solid var(--c-line); }
.trust__inner { display:flex; flex-wrap:wrap; align-items:baseline; gap:var(--s-3) var(--s-6); padding-block:var(--s-4); }
.trust__eyebrow { flex:none; margin:0; font-size:var(--fs-300); font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--c-ink-faint); }
.trust__list { display:flex; flex-wrap:wrap; gap:var(--s-3) var(--s-5); list-style:none; margin:0; padding:0; }
.trust__item a { min-height:var(--touch); display:inline-flex; align-items:center; gap:var(--s-2); font-size:var(--fs-300); font-weight:600; color:var(--c-ink); text-decoration:none; }
.trust__item a::before { content:""; width:.4rem; height:.4rem; flex:none; background:var(--c-accent); transform:rotate(45deg); }
.trust__item a:hover { color:var(--c-brand); }
.prog__head { max-width:var(--measure-wide); margin-bottom:var(--s-7); }
.prog__head h2 { font-size:var(--fs-800); margin-top:var(--s-2); }
.prog__intro { color:var(--c-ink-soft); margin-top:var(--s-4); }
.prog__grid { display:grid; gap:var(--s-7); }
.prog__item { min-width:0; padding-top:var(--s-5); border-top:2px solid var(--c-ink); }
.prog__index { font-family:var(--f-head); font-size:var(--fs-400); font-weight:600; letter-spacing:.12em; color:var(--c-accent); }
.prog__code { font-family:var(--f-head); font-size:var(--fs-900); line-height:1; letter-spacing:-.02em; color:var(--c-ink); margin:var(--s-1) 0 var(--s-3); overflow-wrap:break-word; }
.prog__meta { font-size:var(--fs-300); text-transform:uppercase; letter-spacing:.05em; color:var(--c-ink-faint); }
.prog__desc { color:var(--c-ink-soft); margin:var(--s-3) 0 var(--s-4); max-width:44ch; }
.prog__all { display:inline-block; margin-top:var(--s-6); }
@media (min-width:820px) {
.prog__grid { grid-template-columns:1fr 1fr; gap:var(--s-6) var(--s-8); align-items:start; }
.prog__item:nth-child(2) { margin-top:var(--s-9); }   
}
.story { position:relative; isolation:isolate; overflow:hidden; background:var(--c-bg-sink); color:var(--c-on-sink); padding-block:var(--space-section); }
.story::before {
content:""; position:absolute; inset:0; z-index:-1; pointer-events:none;
background-color:var(--c-on-sink-strong);
-webkit-mask:var(--khatam-mask); mask:var(--khatam-mask);
opacity:.05; filter:blur(.3px);
}
.story__inner { display:grid; gap:var(--s-6); align-items:center; }
.story__media { margin:0; overflow:hidden; }
.story__media img { width:100%; height:auto; display:block; clip-path:polygon(0 0,100% 0,100% 100%,10% 100%,0 90%); }
.story__media .mo-curtain { clip-path: polygon(0 0,100% 0,100% 100%,10% 100%,0 90%); }
.story__eyebrow { margin:0; font-size:var(--fs-300); font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--c-accent); display:flex; flex-wrap:wrap; align-items:baseline; column-gap:var(--s-3); row-gap:var(--s-1); }
.story__est { color:var(--c-on-sink-soft); font-weight:600; letter-spacing:.03em; }
.story__title { font-family:var(--f-head); font-size:var(--fs-800); line-height:var(--lh-tight); color:var(--c-on-sink-strong); margin:var(--s-4) 0; text-wrap:balance; }
.story__title span { display:block; color:var(--c-accent); }
.story__lede { margin-bottom:var(--s-5); color:var(--c-hero-text); max-width:54ch; line-height:var(--lh-body); }
.story__facts { display:flex; flex-wrap:wrap; align-items:baseline; gap:var(--s-2) var(--s-4); margin:var(--s-5) 0; font-size:var(--fs-300); color:var(--c-on-sink-soft); }
.story__facts span { display:inline-flex; align-items:baseline; gap:.4em; }
.story__facts span + span::before { content:"·"; margin-inline-end:var(--s-3); color:var(--c-on-sink-soft); }
.story__facts strong { font-family:var(--f-head); font-size:var(--fs-500); font-weight:600; color:var(--c-on-sink-strong); }
.link-more--light { color:var(--c-on-sink-strong); }
.link-more--light:hover { color:var(--c-accent); }
.story a:focus-visible { outline-color:var(--c-focus-on-dark); }
@media (min-width:860px) {
.story__inner { grid-template-columns:1fr 1.12fr; gap:var(--s-8); }
.story__title { font-size:var(--fs-900); }
}
.prep__head { max-width:var(--measure-wide); }
.prep__head h2 { font-size:var(--fs-800); margin-top:var(--s-2); }
.prep__intro { color:var(--c-ink-soft); margin-top:var(--s-4); max-width:var(--measure); }
.prep__threads { list-style:none; margin:var(--s-7) 0 0; padding:0; display:grid; gap:var(--s-6); border-top:var(--hairline) solid var(--c-line); }
.prep__thread { min-width:0; padding-top:var(--s-5); }
.prep__num { font-family:var(--f-head); font-size:var(--fs-700); font-weight:600; line-height:1; color:var(--c-accent); }
.prep__t { font-size:var(--fs-500); margin:var(--s-3) 0 var(--s-2); color:var(--c-ink); }
.prep__d { font-size:var(--fs-400); color:var(--c-ink-soft); line-height:var(--lh-body); }
.prep__foot { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:baseline; gap:var(--s-3) var(--s-5); margin-top:var(--s-6); padding-top:var(--s-4); border-top:var(--hairline) solid var(--c-line); }
.prep__note { font-size:var(--fs-300); font-style:italic; color:var(--c-ink-faint); max-width:46ch; }
@media (min-width:720px) { .prep__threads { grid-template-columns:repeat(2,1fr); gap:var(--s-7) var(--s-6); } }
@media (min-width:1040px) {
.prep__threads { grid-template-columns:repeat(4,1fr); border-top:0; gap:var(--s-5); }
.prep__thread { border-top:2px solid var(--c-ink); }
}
.campus__inner { display:grid; gap:var(--s-6); }
.campus__head { max-width:var(--measure-wide); }
.campus__head h2 { font-size:var(--fs-800); margin-top:var(--s-2); }
.campus__intro { color:var(--c-ink-soft); margin:var(--s-4) 0; }
.campus__collage { position:relative; display:grid; gap:var(--s-3); grid-template-columns:1fr 1fr; }
.campus__cell { min-width:0; position:relative; display:block; overflow:hidden; color:var(--c-on-sink-strong); background:var(--c-bg-sink); }
.campus__cell:hover,.campus__cell:focus-visible { color:var(--c-on-sink-strong); }
.campus__cell img { width:100%; height:100%; object-fit:cover; aspect-ratio:4/3; display:block; transition:transform var(--dur) var(--ease); }
.campus__cell--lead { grid-column:1 / -1; }
.campus__cell--lead img { aspect-ratio:16/9; }
.campus__label { position:absolute; inset:auto 0 0; padding:var(--s-6) var(--s-4) var(--s-3); font-size:var(--fs-300); font-weight:600; background:linear-gradient(to top,var(--c-overlay),transparent); }
.campus__cell:hover img,.campus__cell:focus-visible img { transform:scale(1.03); }
.campus__star-stage { position:absolute; right:-.6rem; bottom:-.6rem; width:3.25rem; height:3.25rem; z-index:2; pointer-events:none; perspective:850px; }
.campus__star { display:block; width:100%; height:100%; color:var(--c-accent); transform-style:preserve-3d; }
.campus__star-outer, .campus__star-inner { transform-box:fill-box; transform-origin:center; }
@media (hover:hover) {
.campus__label { transition:background-color var(--dur) var(--ease); }
.campus__cell:hover .campus__label,.campus__cell:focus-visible .campus__label { background-color:var(--c-glass); }
}
@media (min-width:820px) {
.campus__inner { grid-template-columns:.8fr 1.5fr; gap:var(--s-8); align-items:center; }
.campus__collage { grid-template-columns:1.55fr 1fr; grid-template-rows:1fr 1fr; }
.campus__cell--lead { grid-column:1; grid-row:1 / 3; }
.campus__cell--lead img,.campus__cell img { aspect-ratio:auto; height:100%; }
.campus__collage { min-height:26rem; }
}
.campus__collage--1 { grid-template-columns:1fr; grid-template-rows:auto; min-height:0; }
.campus__collage--1 .campus__cell--lead { grid-column:1; grid-row:auto; }
.campus__collage--1 .campus__cell img { aspect-ratio:4/3; height:auto; }
.campus__collage--2 { grid-template-rows:auto; }
.campus__collage--2 .campus__cell--lead { grid-row:auto; }
@media (max-width:539px) {
.campus__collage { grid-template-columns:1fr; }
.campus__cell--lead { grid-column:auto; }
}
.principal-x__inner { display:grid; gap:var(--s-5); align-items:start; }
.principal-x__portrait { margin:0; }
.principal-x__portrait img { width:100%; max-width:14rem; height:auto; display:block; border:1px solid var(--c-line); }
.principal-x__quote { font-family:var(--f-head); font-size:var(--fs-600); line-height:var(--lh-tight); color:var(--c-ink); margin:var(--s-4) 0 0; position:relative; text-wrap:pretty; }
.principal-x__quote::before { content:"\201C"; position:absolute; left:-.5em; top:-.12em; font-size:2.2em; line-height:1; color:var(--c-accent); }
html[lang="ta"] .principal-x__quote { font-size:var(--fs-600); line-height:1.55; }
.principal-x__by { margin-top:var(--s-5); }
.principal-x__name { display:block; font-weight:700; color:var(--c-ink); }
.principal-x__role { display:block; margin-top:2px; font-size:var(--fs-300); text-transform:uppercase; letter-spacing:.06em; color:var(--c-ink-faint); }
@media (min-width:720px) {
.principal-x__inner { grid-template-columns:auto 1fr; gap:var(--s-8); }
.principal-x__portrait img { max-width:13rem; }
.principal-x__quote { font-size:var(--fs-700); }
}
.story__inner--text,.principal-x__inner--text { grid-template-columns:1fr; }
.story__inner--text .story__copy,.principal-x__inner--text .principal-x__body { max-width:var(--measure-wide); }
.home-updates__inner { display:grid; gap:var(--s-8); align-items:start; }
.home-updates__inner > * { min-width:0; }
.home-updates__head { margin-bottom:var(--s-5); }
.home-updates__head h2 { margin-top:var(--s-2); font-size:var(--fs-800); }
.home-news__stories { display:grid; gap:var(--s-5); }
.home-news__item { border-bottom:0; }
.home-news__item--featured {
position:relative; isolation:isolate; overflow:hidden;
background:var(--c-bg-sink); color:var(--c-on-sink);
padding:var(--s-6) var(--s-6) var(--s-5);
clip-path:polygon(0 0,100% 0,100% 100%,0 100%,0 calc(100% - 1.4rem),1.4rem 100%,0 100%);
}
.home-news__item--featured::before {
content:""; position:absolute; inset:0; z-index:-1; pointer-events:none;
background-color:var(--c-on-sink-strong); -webkit-mask:var(--khatam-mask); mask:var(--khatam-mask);
opacity:.05;
}
.home-news__item--featured .home-news__meta { color:var(--c-on-sink-soft); }
.home-news__item--featured .home-news__meta > :first-child { color:var(--c-accent); font-weight:700; letter-spacing:.06em; text-transform:uppercase; }
.home-news__item--featured h3 { margin-top:var(--s-4); font-size:var(--fs-800); line-height:var(--lh-tight); max-width:28ch; overflow-wrap:anywhere; }
.home-news__item--featured h3 a { color:var(--c-on-sink-strong); text-decoration:none; text-underline-offset:.15em; }
.home-news__item--featured h3 a:hover,.home-news__item--featured h3 a:focus-visible { color:var(--c-accent); text-decoration:underline; }
.home-news__item--featured .home-news__excerpt { margin-top:var(--s-3); color:var(--c-on-sink); max-width:44ch; }
.home-news__item--featured .link-more { display:inline-flex; align-items:center; gap:.35em; min-height:var(--touch); margin-top:var(--s-5); }
.home-news__item--featured a:focus-visible { outline-color:var(--c-focus-on-dark); }
.home-news__meta { display:flex; flex-wrap:wrap; gap:var(--s-2) var(--s-4); justify-content:space-between; align-items:baseline; font-size:var(--fs-300); color:var(--c-ink-faint); font-variant-numeric:tabular-nums; }
.home-news__meta > :first-child { color:var(--c-brand); font-weight:600; letter-spacing:.04em; text-transform:uppercase; }
.home-news__row { display:flex; align-items:flex-start; gap:var(--s-4); padding-block:var(--s-4); text-decoration:none; color:var(--c-ink); border-top:var(--hairline) solid var(--c-line); }
.home-news__date { flex:none; display:flex; flex-direction:column; align-items:center; width:3rem; padding-block:.15rem; color:var(--c-ink-faint); font-variant-numeric:tabular-nums; }
.home-news__date-d { font-family:var(--f-head); font-size:var(--fs-600); font-weight:600; line-height:1; color:var(--c-ink); }
.home-news__date-m { font-size:var(--fs-300); letter-spacing:.06em; text-transform:uppercase; margin-top:2px; }
.home-news__row-body { flex:1; min-width:0; }
.home-news__row-cat { display:block; font-size:var(--fs-300); font-weight:600; letter-spacing:.04em; text-transform:uppercase; color:var(--c-brand); }
.home-news__row-title { margin:2px 0 0; font-size:var(--fs-500); font-weight:600; color:var(--c-ink); overflow-wrap:anywhere; }
.home-news__row-excerpt { display:block; margin-top:var(--s-2); font-size:var(--fs-300); color:var(--c-ink-soft); }
.home-news__row-arrow { flex:none; align-self:center; color:var(--c-ink-faint); transition:transform var(--dur) var(--ease); }
.home-news__row:hover,.home-news__row:focus-visible { background:var(--c-brand-tint); }
.home-news__row:hover .home-news__row-title,.home-news__row:focus-visible .home-news__row-title { color:var(--c-brand); text-decoration:underline; text-underline-offset:.15em; }
.home-news__row:hover .home-news__row-arrow,.home-news__row:focus-visible .home-news__row-arrow { transform:translateX(3px); color:var(--c-brand); }
.home-news__excerpt { margin-top:var(--s-3); color:var(--c-ink-soft); }
.home-news__item .link-more { display:inline-flex; align-items:center; min-height:var(--touch); margin-top:var(--s-5); }
.home-news__all { display:inline-flex; align-items:center; min-height:var(--touch); margin-top:var(--s-5); }
.home-updates__empty { padding-block:var(--s-4); color:var(--c-ink-soft); border-top:var(--hairline) solid var(--c-line); }
.home-updates__empty a { display:inline-block; padding-block:var(--s-2); }
.home-students__links,.quick-links { display:grid; margin-top:var(--s-4); border-top:2px solid var(--c-ink); }
.home-students__links a,.quality-links a,.quick-links a { display:flex; align-items:center; justify-content:space-between; gap:var(--s-4); min-height:var(--touch); padding-block:var(--s-4); border-bottom:var(--hairline) solid var(--c-line); text-decoration:none; color:var(--c-ink); }
.home-students__links a > :first-child,.quality-links a > :first-child,.quick-links a > :first-child { min-width:0; overflow-wrap:anywhere; }
.home-students__links a > :last-child,.quality-links a > :last-child,.quick-links a > :last-child { flex:none; color:var(--c-brand); }
.home-students__links a:hover,.quality-links a:hover,.quick-links a:hover { color:var(--c-brand); background:var(--c-brand-tint); }
.home-students__notices { list-style:none; padding:0; }
.home-students__notices li { padding-block:var(--s-4); border-top:var(--hairline) solid var(--c-line); }
.home-students__notices h3 { font-size:var(--fs-500); margin-top:var(--s-2); overflow-wrap:anywhere; }
.home-students__notices time { font-size:var(--fs-300); color:var(--c-ink-faint); }
.quality-panel { background:var(--c-bg-alt); border-block:var(--hairline) solid var(--c-line); }
.quality-panel__inner { display:grid; gap:var(--s-6); align-items:start; }
.quality-panel__inner > * { min-width:0; }
.quality-panel__copy h2 { font-size:var(--fs-800); margin-top:var(--s-2); }
.quality-panel__copy > p:not(.eyebrow) { color:var(--c-ink-soft); margin-top:var(--s-4); max-width:var(--measure); }
.quality-panel__search { margin-top:var(--s-5); }
.quality-panel__search label { display:block; font-size:var(--fs-300); font-weight:600; margin-bottom:var(--s-2); }
.quality-panel__search-row { display:flex; gap:var(--s-2); flex-wrap:wrap; }
.quality-panel__search input { flex:1 1 12rem; width:100%; min-width:0; min-height:var(--touch); padding:var(--s-3); border:var(--hairline) solid var(--c-line); border-radius:var(--r-input); background:var(--c-bg); }
.quality-panel__search button { flex:0 1 auto; max-width:100%; }
.quality-links { display:grid; column-gap:var(--s-6); align-content:start; }
.quality-links a { font-weight:600; }
.useful-links__head { max-width:var(--measure-wide); margin-bottom:var(--s-7); }
.useful-links__head h2 { font-size:var(--fs-800); margin-top:var(--s-2); }
.useful-links__intro { color:var(--c-ink-soft); margin-top:var(--s-4); max-width:var(--measure); }
.useful-links__grid { list-style:none; margin:0; padding:0; display:grid; gap:var(--s-4); grid-template-columns:1fr; }
.useful-links__card { display:flex; flex-direction:column; align-items:center; gap:var(--s-3); height:100%; text-align:center; transition:box-shadow var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease); }
a.useful-links__card:hover,a.useful-links__card:focus-visible { transform:translateY(-2px); box-shadow:var(--shadow-md); }
.useful-links__logo { display:flex; align-items:center; justify-content:center; width:100%; height:3.75rem; }
.useful-links__logo img { max-width:100%; max-height:100%; width:auto; height:auto; object-fit:contain; }
.useful-links__name { font-size:var(--fs-300); font-weight:600; line-height:var(--lh-tight); }
.useful-links__divider { border-top:var(--hairline) solid var(--c-line); margin-block:var(--s-7); }
.useful-links__academic h3 { font-size:var(--fs-600); margin-bottom:var(--s-2); }
@media (min-width:480px) { .useful-links__grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (min-width:640px) { .useful-links__grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--s-5); } }
@media (min-width:960px) { .useful-links__grid { grid-template-columns:repeat(5,minmax(0,1fr)); } }
@media (min-width:600px) { .useful-links__academic .quick-links { grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:var(--s-6); } }
@media (min-width:900px) { .useful-links__academic .quick-links { grid-template-columns:repeat(3,minmax(0,1fr)); } }
.admissions-cta { position:relative; isolation:isolate; background:var(--c-accent); color:var(--c-ink); padding-block:var(--space-section); }
.admissions-cta::before { content:""; position:absolute; inset:0; z-index:-1; pointer-events:none; background:var(--c-ink); -webkit-mask:var(--khatam-mask); mask:var(--khatam-mask); opacity:var(--footer-pattern-opacity); }
.admissions-cta__inner { display:grid; gap:var(--s-6); align-items:center; }
.admissions-cta__copy { min-width:0; border-inline-start:2px solid var(--c-ink); padding-inline-start:var(--s-5); }
.admissions-cta__rule { display:block; width:2.75rem; height:2px; background:var(--c-ink); margin-bottom:var(--s-4); transform-origin:left center; }
.admissions-cta .eyebrow { color:var(--c-ink); }
.admissions-cta h2 { font-size:var(--fs-800); margin-top:var(--s-2); max-width:26ch; }
.admissions-cta__copy > p:not(.eyebrow) { margin-top:var(--s-4); max-width:var(--measure); }
.admissions-cta__actions { display:flex; flex-wrap:wrap; gap:var(--s-3); align-items:center; }
.admissions-cta__actions .btn { text-align:center; max-width:100%; }
.admissions-cta__actions .btn--ghost { border-color:var(--c-ink); color:var(--c-ink); background:transparent; }
.admissions-cta__actions .btn--ghost:hover { background:var(--c-bg); }
@media (min-width:600px) { .quality-links { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (min-width:900px) {
.home-updates__inner { grid-template-columns:minmax(0,1.45fr) minmax(0,1fr); }
.home-students { border-inline-start:var(--hairline) solid var(--c-line); padding-inline-start:var(--s-6); }
.quality-panel__inner { grid-template-columns:minmax(0,1fr) minmax(0,1.25fr); gap:var(--s-8); }
.admissions-cta__inner { grid-template-columns:minmax(0,1.5fr) minmax(0,1fr); gap:var(--s-8); }
.admissions-cta__actions { flex-direction:column; align-items:stretch; }
}
@media (max-width:539px) {
.home-news__item--featured { padding:var(--s-5); }
.admissions-cta__actions { flex-direction:column; align-items:stretch; }
}
.link-more { font-weight: 600; font-size: var(--fs-300); text-transform: uppercase; letter-spacing: 0.03em; }
.link-more::after { content: " \2192"; }
.card-grid { display: grid; gap: var(--s-5); grid-template-columns: 1fr; }
@media (min-width: 600px) { .card-grid--2 { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 900px) { .card-grid--3 { grid-template-columns: repeat(3, 1fr); } }
.card {
background: var(--c-bg);
border: 1px solid var(--c-line);
border-radius: var(--r-md);
overflow: hidden;
display: flex; flex-direction: column;
}
.card__media { aspect-ratio: 4 / 3; background: var(--c-bg-alt); }
.card__media img { width: 100%; height: 100%; object-fit: cover; }
.card__body { padding: var(--s-4); display: flex; flex-direction: column; gap: var(--s-2); flex: 1; }
.card__body h3 { font-size: var(--fs-500); }
.card__meta { font-size: var(--fs-300); color: var(--c-ink-faint); }
.programme { border-left: 3px solid var(--c-brand); padding: var(--s-4) var(--s-5); background: var(--c-bg-alt); border-radius: 0 var(--r-md) var(--r-md) 0; }
.programme h3 { font-size: var(--fs-500); }
.news-list { list-style: none; padding: 0; }
.news-list li { padding-block: var(--s-4); border-bottom: 1px solid var(--c-line); }
.news-list time { display: block; font-size: var(--fs-300); color: var(--c-ink-faint); }
.news-list h3 { font-size: var(--fs-500); margin-top: var(--s-1); }
.news-list a { text-decoration: none; }
.news-list a:hover h3 { color: var(--c-brand-hover); }
.pagination { display: flex; justify-content: space-between; margin-top: var(--s-6); font-weight: 600; }
.staff-group + .staff-group { margin-top: var(--s-8); }
.staff-grid { display: grid; gap: var(--s-5); grid-template-columns: repeat(2, 1fr); }
@media (min-width: 600px) { .staff-grid { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 900px) { .staff-grid { grid-template-columns: repeat(4, 1fr); } }
.staff-card { text-align: center; }
.staff-card__photo { aspect-ratio: 1; border-radius: var(--r-md); object-fit: cover; width: 100%; background: var(--c-bg-alt); }
.staff-card__ph { display: grid; place-items: center; aspect-ratio: 1; border-radius: var(--r-md); background: var(--c-brand-tint); color: var(--c-brand); font-family: var(--f-head); font-size: var(--fs-700); }
.staff-card h3 { font-size: var(--fs-400); margin-top: var(--s-3); font-family: var(--f-body); font-weight: 600; }
.staff-card p { font-size: var(--fs-300); color: var(--c-ink-soft); }
.staff-table td:first-child { font-weight: 600; }
.doc-toolbar { display: flex; gap: var(--s-3); flex-wrap: wrap; align-items: center; margin-bottom: var(--s-5); }
.doc-toolbar input[type="search"] { flex: 1; min-width: 220px; padding: var(--s-3) var(--s-4); border: 1px solid var(--c-line); border-radius: var(--r-pill); font: inherit; }
.doc-count { font-size: var(--fs-300); color: var(--c-ink-faint); }
.doc-group { border: 1px solid var(--c-line); border-radius: var(--r-md); margin-bottom: var(--s-3); overflow: hidden; }
.doc-group > summary {
padding: var(--s-3) var(--s-4); cursor: pointer; font-weight: 600;
background: var(--c-bg-alt); list-style: none; display: flex; justify-content: space-between; gap: var(--s-3);
}
.doc-group > summary::-webkit-details-marker { display: none; }
.doc-group > summary::after { content: "+"; color: var(--c-ink-faint); }
.doc-group[open] > summary::after { content: "\2013"; }
.doc-group__count { color: var(--c-ink-faint); font-weight: 400; font-size: var(--fs-300); }
.doc-list { list-style: none; padding: 0; margin: 0; }
.doc-list li { border-top: 1px solid var(--c-line-soft); }
.doc-list li:first-child { border-top: 0; }
.doc-row { display: flex; flex-wrap: wrap; gap: var(--s-1) var(--s-3); align-items: baseline; padding: var(--s-3) var(--s-4); text-decoration: none; color: var(--c-ink); min-height: var(--touch); }
.doc-row:hover { background: var(--c-brand-tint); }
.doc-row__ref { flex-shrink: 0; font-variant-numeric: tabular-nums; font-weight: 600; color: var(--c-brand); font-size: var(--fs-300); min-width: 4.5em; }
.doc-row__title { flex: 1 1 12rem; min-width: 0; overflow-wrap: anywhere; }
.doc-row__dl { flex-shrink: 0; font-size: var(--fs-300); color: var(--c-ink-faint); text-transform: uppercase; letter-spacing: 0.04em; }
.doc-empty { padding: var(--s-6); background: var(--c-bg-alt); border-radius: var(--r-md); color: var(--c-ink-soft); }
.album-grid { display: grid; gap: var(--s-4); grid-template-columns: repeat(2, 1fr); }
@media (min-width: 700px) { .album-grid { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1000px) { .album-grid { grid-template-columns: repeat(4, 1fr); } }
.album-tile { display: block; text-decoration: none; color: var(--c-ink); }
.album-tile img { aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--r-md); width: 100%; background: var(--c-bg-alt); overflow: hidden; transition: transform var(--dur) var(--ease); }
.album-tile:hover img, .album-tile:focus-visible img { transform: scale(1.03); }
.album-tile h3 { font-size: var(--fs-400); font-family: var(--f-body); font-weight: 600; margin-top: var(--s-2); }
.album-tile:hover h3, .album-tile:focus-visible h3 { color: var(--c-brand); }
.album-tile span { font-size: var(--fs-300); color: var(--c-ink-faint); }
.photo-grid { display: grid; gap: var(--s-3); grid-template-columns: repeat(2, 1fr); }
@media (min-width: 640px) { .photo-grid { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 960px) { .photo-grid { grid-template-columns: repeat(4, 1fr); } }
.photo-grid a { display: block; }
.photo-grid img { aspect-ratio: 1; object-fit: cover; border-radius: var(--r-sm); width: 100%; background: var(--c-bg-alt); }
.lightbox { position: fixed; inset: 0; background: var(--c-overlay); display: grid; place-items: center; padding: var(--s-5); z-index: 300; }
.lightbox[hidden] { display: none; }
.lightbox__frame { display: grid; justify-items: center; max-width: 100%; }
.lightbox__frame img { max-width: 100%; max-height: 82vh; border-radius: var(--r-sm); }
.lightbox__frame img { opacity: 0; transform: scale(.98); transition: opacity .18s var(--ease), transform .18s var(--ease); }
.lightbox__frame img.is-settled { opacity: 1; transform: scale(1); }
.lightbox__cap { color: var(--c-on-sink-strong); text-align: center; margin-top: var(--s-3); font-size: var(--fs-300); font-family: var(--f-head); max-width: 60ch; }
.lightbox__cap[hidden] { display: none; }
.lightbox__close, .lightbox__nav { position: absolute; background: var(--c-glass); color: var(--c-on-sink-strong); border: 0; font-size: var(--fs-600); width: var(--touch); height: var(--touch); border-radius: var(--r-pill); cursor: pointer; }
.lightbox__close:hover, .lightbox__nav:hover { background: var(--c-brand); }
.lightbox *:focus-visible { outline-color: var(--c-focus-on-dark); outline-offset: 2px; }
.lightbox__close { top: var(--s-4); right: var(--s-4); }
.lightbox__nav--prev { left: var(--s-4); top: 50%; transform: translateY(-50%); }
.lightbox__nav--next { right: var(--s-4); top: 50%; transform: translateY(-50%); }
body.lightbox-open { overflow: hidden; }
@media (prefers-reduced-motion: reduce) {
.lightbox__frame img { transition: none; opacity: 1; transform: none; }
}
.to-top {
position: fixed; right: var(--s-5); bottom: var(--s-5); z-index: 90;
display: inline-flex; align-items: center; justify-content: center;
width: var(--touch); height: var(--touch); padding: 0;
border: 1px solid var(--c-line); background: var(--c-bg); color: var(--c-brand);
box-shadow: var(--shadow-card); cursor: pointer;
opacity: 0; visibility: hidden; transform: translateY(8px); pointer-events: none;
transition: opacity var(--dur) var(--ease), transform var(--dur) var(--ease),
background var(--dur) var(--ease), color var(--dur) var(--ease);
}
.to-top[hidden] { display: none; }               
.to-top.is-visible { opacity: 1; visibility: visible; transform: none; pointer-events: auto; }
.to-top:hover { background: var(--c-brand); color: var(--c-on-brand); border-color: var(--c-brand); }
.to-top__icon { width: 20px; height: 20px; }
body.nav-open .to-top { visibility: hidden; opacity: 0; }
.tile-links { display: grid; gap: var(--s-4); grid-template-columns: 1fr; }
@media (min-width: 700px) { .tile-links { grid-template-columns: repeat(2, 1fr); } }
.tile-link { display: block; padding: var(--s-5); border: 1px solid var(--c-line); border-radius: var(--r-md); text-decoration: none; color: var(--c-ink); }
.tile-link:hover { border-color: var(--c-brand); background: var(--c-bg-alt); }
.tile-link h3 { font-size: var(--fs-500); }
.tile-link p { color: var(--c-ink-soft); margin-top: var(--s-2); font-size: var(--fs-300); }
.tile-link__pending { color: var(--c-ink-faint); font-style: italic; }
.notice-pin { display: inline-flex; align-items: center; gap: .3em; padding: .15em .6em; margin-right: var(--s-2); font-size: var(--fs-300); font-weight: 600; color: var(--c-brand); background: var(--c-brand-tint); border-radius: var(--r-pill); }
.js-enabled [data-reveal] { opacity: 0; transform: translateY(var(--reveal-shift)); }
.js-enabled [data-reveal].is-in { opacity: 1; transform: none; transition: opacity var(--dur) var(--ease), transform var(--dur) var(--ease); }
@media (prefers-reduced-motion: reduce) {
.js-enabled [data-reveal] { opacity: 1; transform: none; transition: none; }
.hero-x__eyebrow, .hero-x__title, .hero-x__lede, .hero-x__actions, .hero-x__cred {
animation: none;
}
.hero-x__pic::after, .hero-x__pic::before { display: none; }
.hero-x__img { transition: none; }
.hero-x__img.is-entering, .hero-x__img.is-leaving { animation: none !important; }
.campus__cell:hover img,.campus__cell:focus-visible img { transform: none; }
.campus__label { opacity: 1; }
}
.contact-grid { display: grid; gap: var(--s-6); grid-template-columns: 1fr; }
@media (min-width: 800px) { .contact-grid { grid-template-columns: 1fr 1fr; } }
.contact-card dt { font-weight: 600; margin-top: var(--s-4); }
.contact-card dd { margin: 0; color: var(--c-ink-soft); }
.form-layout { display: grid; gap: var(--s-7); grid-template-columns: 1fr; }
@media (min-width: 900px) { .form-layout.has-aside { grid-template-columns: 1.6fr 1fr; } }
.field { margin-bottom: var(--s-5); }
.field > label { display: flex; flex-wrap: wrap; align-items: baseline; gap: .4em; font-weight: 600; margin-bottom: var(--s-2); }
.field .req { color: var(--c-danger); }
.field .field-optional { font-weight: 400; font-size: var(--fs-300); color: var(--c-ink-faint); }
.field input, .field select, .field textarea {
width: 100%; max-width: var(--measure);
min-height: var(--touch);
padding: var(--s-3); font: inherit;
border: 1px solid var(--c-line); border-radius: var(--r-sm);
background: var(--c-bg); color: var(--c-ink);
}
.field textarea { min-height: 8rem; }
.field input:focus, .field select:focus, .field textarea:focus {
outline: var(--focus-width) solid var(--c-focus); outline-offset: var(--focus-offset); border-color: var(--c-brand);
}
.field.has-error input, .field.has-error select, .field.has-error textarea { border-color: var(--c-danger); }
.field .err { display: block; margin-top: var(--s-2); color: var(--c-danger); font-size: var(--fs-300); font-weight: 600; }
.form-summary { border: 1px solid var(--c-danger-line); background: var(--c-danger-bg); color: var(--c-danger-ink);
padding: var(--s-4) var(--s-5); border-radius: var(--r-sm); margin-bottom: var(--s-5); }
.form-summary:focus { outline: var(--focus-width) solid var(--c-danger-ink); outline-offset: var(--focus-offset); }
.form-summary h2 { font-size: var(--fs-500); margin: 0; }
.form-summary p { margin-top: var(--s-2); }
.form-summary ul { list-style: none; margin: var(--s-3) 0 0; padding: 0; display: grid; gap: var(--s-1); }
.form-summary a { color: var(--c-danger-ink); font-weight: 600; text-underline-offset: .15em; }
.form-summary a:hover { color: var(--c-brand); }
.form-required-note { font-size: var(--fs-300); color: var(--c-ink-soft); margin-bottom: var(--s-5); }
.form-section { border: 0; padding: 0; margin: 0 0 var(--s-7); }
.form-section + .form-section { padding-top: var(--s-6); border-top: var(--hairline) solid var(--c-line); }
.form-section legend { font-family: var(--f-head); font-size: var(--fs-600); font-weight: 600; color: var(--c-ink); padding: 0; margin-bottom: var(--s-4); width: 100%; }
.form-privacy { font-size: var(--fs-300); color: var(--c-ink-soft); max-width: var(--measure);
margin: var(--s-5) 0; padding-left: var(--s-3); border-left: 3px solid var(--c-line); }
.hp-wrap { position: absolute; left: -9999px; top: -9999px; width: 1px; height: 1px; overflow: hidden; }
.form-aside { background: var(--c-bg-alt); border-radius: var(--r-md); padding: var(--s-5); font-size: var(--fs-300); }
.form-aside dt { font-weight: 600; margin-top: var(--s-3); }
.form-aside dd { margin: 0; color: var(--c-ink-soft); }
.search-box { display: flex; gap: var(--s-2); max-width: var(--measure); margin: var(--s-5) 0; }
.search-box input { flex: 1 1 auto; min-width: 0; min-height: var(--touch); padding: var(--s-3); font: inherit; border: 1px solid var(--c-line); border-radius: var(--r-sm); }
.search-box button { flex: 0 0 auto; min-height: var(--touch); }
.search-notice { padding: var(--s-3) var(--s-4); background: var(--c-brand-tint); border-radius: var(--r-md); font-size: var(--fs-300); margin-bottom: var(--s-4); }
.search-tabs { display: flex; flex-wrap: wrap; gap: var(--s-2); margin: var(--s-5) 0; padding-bottom: var(--s-4); border-bottom: var(--hairline) solid var(--c-line); }
.search-tabs__item { display: inline-flex; align-items: center; gap: var(--s-2); min-height: var(--touch); padding: var(--s-2) var(--s-4); border: var(--hairline) solid var(--c-line); border-radius: var(--r-pill); text-decoration: none; color: var(--c-ink-soft); font-size: var(--fs-300); font-weight: 600; }
.search-tabs__item:hover { border-color: var(--c-brand); color: var(--c-brand); }
.search-tabs__item.is-active { background: var(--c-brand); border-color: var(--c-brand); color: var(--c-on-brand); }
.search-tabs__count { font-variant-numeric: tabular-nums; opacity: .75; }
.search-result { padding: var(--s-4) 0; border-bottom: 1px solid var(--c-line); }
.search-result .type { font-size: var(--fs-300); color: var(--c-ink-faint); text-transform: uppercase; letter-spacing: 0.04em; }
.search-result__meta { display: flex; flex-wrap: wrap; gap: var(--s-2) var(--s-4); align-items: baseline; }
.search-result__ref { font-size: var(--fs-300); font-weight: 600; color: var(--c-brand); font-variant-numeric: tabular-nums; }
.search-result__meta time { font-size: var(--fs-300); color: var(--c-ink-faint); }
.search-result__title { font-size: var(--fs-500); margin: var(--s-1) 0; overflow-wrap: anywhere; }
.search-result__title a { color: var(--c-ink); text-decoration: none; text-underline-offset: .15em; }
.search-result__title a:hover, .search-result__title a:focus-visible { color: var(--c-brand); text-decoration: underline; }
.search-result__snippet { color: var(--c-ink-soft); margin-top: var(--s-2); overflow-wrap: anywhere; }
.naac-gateway h2 { font-size: var(--fs-700); }
.naac-rows { display: grid; margin-top: var(--s-5); border-top: var(--hairline) solid var(--c-line); }
.naac-row { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: var(--s-3) var(--s-5); min-height: var(--touch); padding-block: var(--s-4); border-bottom: var(--hairline) solid var(--c-line); text-decoration: none; color: var(--c-ink); }
.naac-row:hover, .naac-row:focus-visible { color: var(--c-brand); background: var(--c-brand-tint); }
.naac-row__main { min-width: 0; overflow-wrap: anywhere; }
.naac-row__label { display: block; font-weight: 600; }
.naac-row__desc { display: block; margin-top: 2px; font-size: var(--fs-300); color: var(--c-ink-soft); }
.naac-row__count { flex: none; font-size: var(--fs-300); font-variant-numeric: tabular-nums; color: var(--c-ink-faint); white-space: nowrap; }
.naac-rows--primary { border-top: 2px solid var(--c-ink); }
.naac-rows--primary .naac-row__label { font-family: var(--f-head); font-size: var(--fs-500); font-weight: 600; color: var(--c-ink); }
.naac-rows--primary .naac-row:hover .naac-row__label,.naac-rows--primary .naac-row:focus-visible .naac-row__label { color: var(--c-brand); }
button,.btn,input[type="submit"],input[type="button"],input[type="reset"] { border-radius:var(--r-button); }
@media (min-width:1080px) {
.programme-page :is(#bed,#med) {
scroll-margin-top:calc(var(--header-utility-h) + var(--masthead-h) - var(--masthead-h-scrolled));
}
}
.prog-intro__body { color:var(--c-ink-soft); margin-top:var(--s-4); max-width:var(--measure); }
.prog-nav { display:flex; gap:var(--s-5); margin-top:var(--s-5); padding-top:var(--s-4); border-top:var(--hairline) solid var(--c-line); }
.prog-nav a { font-weight:600; text-decoration:none; color:var(--c-brand); min-height:var(--touch); display:inline-flex; align-items:center; }
.prog-nav a:hover,.prog-nav a:focus-visible { text-decoration:underline; }
.prog-detail__inner { display:grid; gap:var(--s-6); }
.prog-detail__inner--text { grid-template-columns:1fr; }
.prog-detail__media { margin:0; }
.prog-detail__media img { width:100%; height:auto; display:block; border-radius:var(--r-md); }
.prog-detail__body h2 { font-family:var(--f-head); font-size:var(--fs-800); color:var(--c-ink); }
.prog-detail__meta { font-size:var(--fs-300); text-transform:uppercase; letter-spacing:.05em; color:var(--c-ink-faint); margin-top:var(--s-2); }
.prog-detail .prose { margin-top:var(--s-4); }
.prog-detail__resources { margin-top:var(--s-6); padding-top:var(--s-4); border-top:var(--hairline) solid var(--c-line); }
.prog-detail__resources-h { font-size:var(--fs-300); font-weight:600; text-transform:uppercase; letter-spacing:.05em; color:var(--c-ink-faint); margin:0; }
.prog-detail__resources ul { list-style:none; padding:0; margin:var(--s-3) 0 0; display:grid; gap:var(--s-2); }
.prog-detail__actions { display:flex; flex-wrap:wrap; gap:var(--s-3); margin-top:var(--s-6); }
@media (min-width:820px) {
.prog-detail__inner { grid-template-columns:minmax(0,.85fr) minmax(0,1.4fr); gap:var(--s-8); align-items:start; }
.prog-detail__inner--text { grid-template-columns:1fr; }
.prog-detail__media img { aspect-ratio:4/3; object-fit:cover; height:100%; }
}
.prog-compare__scroll { overflow-x:auto; margin-top:var(--s-6); }
.prog-compare__table { width:100%; min-width:32rem; border-collapse:collapse; }
.prog-compare__table th,.prog-compare__table td { text-align:left; padding:var(--s-3) var(--s-4); border-bottom:var(--hairline) solid var(--c-line); vertical-align:top; }
.prog-compare__table thead th { font-size:var(--fs-300); text-transform:uppercase; letter-spacing:.05em; color:var(--c-ink-faint); border-bottom:2px solid var(--c-ink); }
.prog-compare__table tbody th { font-family:var(--f-head); font-size:var(--fs-500); font-weight:600; color:var(--c-ink); white-space:nowrap; }
.journey-escape { position:relative; isolation:isolate; overflow:hidden; }
.journey-escape::before { content:""; position:absolute; inset:0; z-index:-1; pointer-events:none; background:var(--c-ink); -webkit-mask:var(--khatam-mask); mask:var(--khatam-mask); opacity:.04; }
.journey-escape h2 { font-size:var(--fs-700); margin-top:var(--s-2); }
.journey-escape p { color:var(--c-ink-soft); margin-top:var(--s-3); max-width:var(--measure); }
.journey-escape__actions { display:flex; flex-wrap:wrap; gap:var(--s-3); margin-top:var(--s-5); }
.adm-intro__body { color:var(--c-ink-soft); margin-top:var(--s-4); max-width:var(--measure); }
.adm-choose__grid { display:grid; gap:var(--s-4); margin-top:var(--s-6); grid-template-columns:1fr; }
.adm-choose__item { display:flex; align-items:center; gap:var(--s-4); min-height:var(--touch); padding:var(--s-5); border:var(--hairline) solid var(--c-line); border-radius:var(--r-md); text-decoration:none; color:var(--c-ink); background:var(--c-bg); }
.adm-choose__item:hover,.adm-choose__item:focus-visible { border-color:var(--c-brand); background:var(--c-brand-tint); }
.adm-choose__code { font-family:var(--f-head); font-size:var(--fs-700); color:var(--c-brand); flex-shrink:0; }
.adm-choose__label { font-weight:600; }
@media (min-width:620px) { .adm-choose__grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
.adm-confirm__status { display:inline-flex; flex-wrap:wrap; gap:var(--s-2); align-items:baseline; margin-top:var(--s-4); padding:var(--s-3) var(--s-4); background:var(--c-brand-tint); border-radius:var(--r-md); font-size:var(--fs-400); }
.adm-confirm__status-label { font-weight:600; color:var(--c-brand); }
.adm-confirm .prose { margin-top:var(--s-6); }
.adm-confirm .prose h3 { font-size:var(--fs-600); }
.adm-process__note { font-size:var(--fs-300); font-style:italic; color:var(--c-ink-faint); margin-top:var(--s-3); max-width:var(--measure); }
.adm-process__steps { list-style:none; counter-reset:step; margin:var(--s-6) 0 0; padding:0; display:grid; gap:var(--s-4); max-width:var(--measure); }
.adm-process__steps li { position:relative; padding-inline-start:var(--s-8); counter-increment:step; min-height:1.75rem; }
.adm-process__steps li::before {
content:counter(step); position:absolute; left:0; top:0; width:1.75rem; height:1.75rem;
display:grid; place-items:center; font-family:var(--f-head); font-weight:600; font-size:var(--fs-300);
color:var(--c-on-brand); background:var(--c-brand); border-radius:50%;
}
.adm-process__actions { display:flex; flex-wrap:wrap; gap:var(--s-3); margin-top:var(--s-6); }
.info-note__box { position:relative; padding:var(--s-6); border-inline-start:3px solid var(--c-accent); background:var(--c-bg-alt); border-radius:0 var(--r-md) var(--r-md) 0; }
.info-note__box h2 { font-size:var(--fs-600); margin:0; }
.info-note__box p { color:var(--c-ink-soft); margin-top:var(--s-3); max-width:var(--measure); }
.info-note__actions { display:flex; flex-wrap:wrap; gap:var(--s-5); margin-top:var(--s-4); }
@media (max-width:539px) {
.prog-detail__actions,.journey-escape__actions,.adm-process__actions { flex-direction:column; align-items:stretch; }
.prog-detail__actions .btn,.journey-escape__actions .btn,.adm-process__actions .btn { text-align:center; }
}