
:root{
  /* surfaces, from the graded black up */
  --bg:#0E0B09;--bg-1:#13100D;--bg-2:#191411;--bg-3:#221B16;--espresso:#2A2019;--deep:#0A0807;
  --line:rgba(234,220,194,.1);--line-2:rgba(234,220,194,.18);--line-3:rgba(234,220,194,.3);
  /* type colours */
  --text:#F4EDE3;--text-2:rgba(244,237,227,.74);--muted:rgba(244,237,227,.56);
  --sand:#EADCC2;--amber:#E9BC7E;--ink:#21170F;
  /* data: the counted split (validated for colour-blind separation on the dark surface) and states */
  --for:#2B8FB0;--against:#C96A2A;--mixed:#9A7BCB;--unclear:#5E5750;
  --good:#5FA77A;--warn:#D79A35;--bad:#D25A43;
  /* type */
  --f-ui:'Inter','Noto Sans Tamil',system-ui,-apple-system,'Segoe UI',sans-serif;
  --f-ta:'Noto Sans Tamil','Inter',system-ui,sans-serif;
  --f-serif:'Newsreader','Noto Serif Tamil',Georgia,'Times New Roman',serif;
  --f-serif-ta:'Noto Serif Tamil','Newsreader',Georgia,serif;
  --f-mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --t-xs:12px;--t-sm:14px;--t-base:16px;--t-md:18px;--t-lg:20px;--t-xl:24px;
  --t-2xl:clamp(26px,2.2vw,32px);--t-3xl:clamp(30px,3vw,44px);--t-4xl:clamp(38px,4.6vw,68px);--t-5xl:clamp(44px,6.4vw,104px);
  /* space: 8-point */
  --s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--s6:32px;--s7:48px;--s8:64px;--s9:96px;--s10:128px;
  --gutter:clamp(16px,4vw,64px);--max:1600px;--nav-h:72px;
  --section:clamp(64px,8vw,120px);
  --r-sm:8px;--r:12px;--r-lg:16px;
  --ease:cubic-bezier(.16,1,.3,1);
  color-scheme:dark;
}
*{box-sizing:border-box}
/* No scrollbars anywhere, the page or any box inside it; everything still scrolls by wheel, trackpad, touch and keys. */
*{scrollbar-width:none}
*::-webkit-scrollbar{display:none}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--nav-h) + var(--s4))}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
body{margin:0;background:var(--bg);color:var(--text);font:var(--t-base)/1.6 var(--f-ui);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden;overflow-wrap:break-word}
a{color:inherit;text-decoration-color:rgba(233,188,126,.45);text-underline-offset:3px;transition:color .2s,text-decoration-color .2s}
a:hover{text-decoration-color:var(--amber)}
img,video,svg{max-width:100%;display:block}
h1,h2,h3,h4{margin:0;font-weight:inherit}
p{margin:0}
::selection{background:rgba(233,188,126,.35)}
:focus-visible{outline:2px solid var(--amber);outline-offset:3px;border-radius:4px}
button{font:inherit;color:inherit}
.ta{font-family:var(--f-ta);line-height:1.75}
.muted{color:var(--muted)}.dim{color:var(--text-2)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:var(--gutter);top:-60px;z-index:100;background:var(--sand);color:var(--ink);padding:10px 16px;border-radius:var(--r-sm);font-weight:600}
.skip:focus{top:12px}

/* ---- layout ---- */
.container{width:100%;max-width:var(--max);margin-inline:auto;padding-inline:var(--gutter)}
.narrow{max-width:880px}
.section{padding-block:var(--section)}
/* One background colour for the whole page. Sections are told apart by space, never by a line or a tint: one
   section's padding is the gap to the next (a scene band keeps its own, which its fades need). */
.section + .section:not(.band){padding-top:0}
.band + .section:not(.band){padding-top:var(--section)}
.cols{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--s6);row-gap:var(--s6)}
.span-4{grid-column:span 4}.span-5{grid-column:span 5}.span-6{grid-column:span 6}.span-7{grid-column:span 7}.span-8{grid-column:span 8}.span-12{grid-column:1/-1}
@media (max-width:1023px){.cols{grid-template-columns:minmax(0,1fr)}.cols>*{grid-column:1/-1!important}}
.grid{display:grid;gap:var(--s5)}
.auto{grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr))}
.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:1023px){.g3{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* Four cards stay two across until a laptop is wide enough for four readable columns (Tamil words run long). */
@media (max-width:1279px){.g4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1280px) and (max-width:1439px){html[lang="ta"] .g4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.g2,.g3,.g4{grid-template-columns:minmax(0,1fr)}}
/* In two columns, an odd card left at the end spans the row instead of leaving half of it empty. */
@media (min-width:641px){.g2 > .card:last-child:nth-child(odd){grid-column:1/-1}}
@media (min-width:641px) and (max-width:1023px){.g3 > .card:last-child:nth-child(odd){grid-column:1/-1}}
@media (min-width:641px) and (max-width:1279px){.g4 > .card:last-child:nth-child(odd){grid-column:1/-1}}
.row{display:flex;flex-wrap:wrap;gap:var(--s3);align-items:center}

/* ---- type ---- */
.eyebrow{display:inline-flex;align-items:center;gap:var(--s2);color:var(--amber);font:600 var(--t-xs)/1.3 var(--f-ui);letter-spacing:.14em;text-transform:uppercase}
.eyebrow.ta{letter-spacing:.02em;text-transform:none;font-size:13px}
.display{font:500 var(--t-4xl)/1.02 var(--f-serif);letter-spacing:-.02em;text-wrap:balance}
.display.xl{font-size:var(--t-5xl);line-height:.98;letter-spacing:-.03em}
.display.ta,.h2.ta{font-family:var(--f-serif-ta);font-weight:600;letter-spacing:0;line-height:1.3}
.display.ta{font-size:clamp(27px,2.6vw,42px);line-height:1.34}
.h2{font:500 var(--t-3xl)/1.1 var(--f-serif);letter-spacing:-.015em;text-wrap:balance}
.h3{font:600 var(--t-lg)/1.35 var(--f-ui);letter-spacing:-.01em;overflow-wrap:break-word}
.lede{font:400 var(--t-lg)/1.55 var(--f-serif);color:var(--text-2);max-width:56ch}
.lede.ta{font:400 var(--t-md)/1.8 var(--f-ta)}
.lede.question:not(.ta){font-style:italic}
.label{display:block;font:600 var(--t-xs)/1.3 var(--f-ui);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.label.ta{letter-spacing:0;text-transform:none;font-size:13px}
.num{font-variant-numeric:tabular-nums}

/* ---- the cinematic backdrop: graded story images, bloom, shade, vignette, grain ---- */
.cine{position:absolute;inset:0;overflow:hidden;background:var(--deep);isolation:isolate;z-index:0}
.cine-frame{position:absolute;inset:-3%;opacity:0;transition:opacity 1.8s ease}
.cine-frame.on{opacity:1}
.cine-frame img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:url(#grade);transform:scale(1.03)}
.cine-frame img.bloom{filter:url(#grade) blur(16px);mix-blend-mode:screen;opacity:.13}
.cine-frame.on img{animation:drift 16s ease-in-out infinite alternate}
@keyframes drift{from{transform:scale(1.03) translate3d(0,0,0)}to{transform:scale(1.11) translate3d(-1.6%,-1.1%,0)}}
.cine::after{content:"";position:absolute;inset:0;pointer-events:none;background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 .5 0 0 0 0 .5 0 0 0 0 .5 0 0 0 1 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");opacity:.08;mix-blend-mode:overlay}
.cine-shade{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(0,0,0,.45) 0%,rgba(0,0,0,.16) 34%,rgba(0,0,0,0) 52%,rgba(0,0,0,.08) 85%,rgba(0,0,0,.32) 100%),radial-gradient(ellipse 80% 75% at 50% 45%,rgba(0,0,0,0) 50%,rgba(0,0,0,.34) 100%)}
.cine.empty{background:radial-gradient(55% 60% at 72% 28%,rgba(233,188,126,.24),transparent 70%),radial-gradient(45% 55% at 18% 82%,rgba(43,143,176,.14),transparent 70%),radial-gradient(40% 40% at 50% 60%,rgba(201,106,42,.1),transparent 70%),linear-gradient(180deg,#1D1611,#0E0B09)}
.over{position:relative;z-index:2}

/* ---- the bar across the top: a rounded panel floating clear of the edges, as wide as the page's content, glass over
   the hero and nearly solid once the page scrolls. It fills the top --nav-h of the screen, so everything that clears
   the bar still does. ---- */
.nav{position:fixed;inset:var(--s3) 0 auto;z-index:50;height:calc(var(--nav-h) - var(--s3));pointer-events:none}
.nav .nav-in{position:relative;pointer-events:auto;width:calc(100% - 2 * var(--gutter));max-width:calc(var(--max) - 2 * var(--gutter));padding-inline:var(--s5) var(--s3);border-radius:var(--r-lg);border:1px solid var(--line-2);background:rgba(19,16,13,.5);backdrop-filter:blur(18px) saturate(1.2);-webkit-backdrop-filter:blur(18px) saturate(1.2);box-shadow:0 18px 40px -18px rgba(0,0,0,.75);transition:background .3s var(--ease)}
.nav.solid .nav-in,.nav.scrolled .nav-in{background:rgba(19,16,13,.9)}
.nav-in{height:100%;display:flex;align-items:center;gap:var(--s6)}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font:600 17px/1 var(--f-ui);letter-spacing:-.01em;white-space:nowrap}
.brand b{color:var(--sand);font-weight:400}
/* Inside the rounded bar the page you are on is a soft filled tab rather than a line on the bar's edge. */
.nav-links{display:flex;align-items:center;gap:var(--s1);height:100%;font:500 var(--t-sm)/1 var(--f-ui)}
.nav-links a{display:flex;align-items:center;height:36px;padding:0 10px;border-radius:var(--r-sm);text-decoration:none;color:var(--text-2);white-space:nowrap;transition:color .2s,background .2s}
.nav-links a:hover{color:var(--text);background:rgba(234,220,194,.06)}
.nav-links a[aria-current=page]{color:var(--text);background:rgba(234,220,194,.1)}
.nav-end{margin-left:auto;display:flex;gap:var(--s3);align-items:center}
.lang{display:inline-flex;gap:2px;font:600 13px/1 var(--f-ui)}
.lang a{display:inline-flex;align-items:center;height:32px;padding:0 10px;border-radius:var(--r-sm);text-decoration:none;color:var(--muted)}
.lang a:hover{color:var(--text)}
.lang a.on{color:var(--text);background:rgba(234,220,194,.1)}
.lang .ta{font-family:var(--f-ta);line-height:1}
/* The phone menu drops down under the bar as its own rounded panel, as wide as the bar. It is placed against the bar
   (.nav-in), and is nearly opaque: a blur inside the bar's own blur would show nothing behind it. */
.menu{display:none}
.menu summary{list-style:none;cursor:pointer;width:40px;height:40px;border-radius:var(--r-sm);border:1px solid var(--line-2);display:grid;place-items:center}
.menu summary::-webkit-details-marker{display:none}
.menu-panel{position:absolute;top:calc(100% + var(--s2));left:0;right:0;display:grid;padding:var(--s2) var(--s5);border-radius:var(--r-lg);border:1px solid var(--line-2);background:rgba(19,16,13,.97);box-shadow:0 24px 50px -20px rgba(0,0,0,.85)}
.menu-panel a{padding:14px 0;text-decoration:none;border-bottom:1px solid var(--line);font-size:var(--t-md)}
.menu-panel a:last-child{border-bottom:0}
@media (max-width:1180px){.nav-in{gap:var(--s4)}}
/* The links fold into the menu once the bar can no longer hold them on one line: sooner in Tamil, whose labels run longer. */
@media (max-width:1080px){.nav-links,.nav-end .hide-sm{display:none}.menu{display:block}}
@media (max-width:1280px){html[lang="ta"] .nav-links,html[lang="ta"] .nav-end .hide-sm{display:none}html[lang="ta"] .menu{display:block}}

/* ---- buttons ---- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s2);height:44px;padding:0 var(--s5);border-radius:var(--r-sm);font:600 var(--t-sm)/1 var(--f-ui);text-decoration:none;border:1px solid transparent;cursor:pointer;transition:background .2s,border-color .2s,transform .15s var(--ease);white-space:nowrap;touch-action:manipulation}
.btn:active{transform:scale(.98)}
.btn[disabled]{opacity:.45;cursor:not-allowed}
.btn-sm{height:36px;padding:0 var(--s4);font-size:13px}
.btn-lg{height:52px;padding:0 var(--s6);font-size:var(--t-base)}
.btn-sand{background:var(--sand);color:var(--ink)}
.btn-sand:hover{background:#F6ECDA}
.btn-ghost{background:rgba(244,237,227,.05);border-color:var(--line-2);color:var(--text)}
.btn-ghost:hover{background:rgba(244,237,227,.1);border-color:var(--line-3)}
.btn-danger{background:transparent;border-color:rgba(210,90,67,.55);color:#F2A99B}
.btn-danger:hover{background:rgba(210,90,67,.12)}
.btn svg{width:16px;height:16px;flex:none}
/* A label longer than the screen (a Tamil one, on a phone) wraps inside the button instead of pushing the page wide. */
@media (max-width:640px){.btn{max-width:100%;height:auto;min-height:44px;padding-block:10px;white-space:normal;text-align:center;line-height:1.35}.btn-sm{min-height:36px;padding-block:8px}.btn-lg{min-height:52px;padding-block:12px}}
.link{color:var(--amber);text-decoration:none;font-weight:600;font-size:var(--t-sm);display:inline-flex;gap:6px;align-items:center;white-space:nowrap}
.link:hover{color:#F3D3A6}
.link svg{width:16px;height:16px}

/* ---- the hero ---- */
/* The full-height hero sits in the middle of the screen below the bar (the extra top padding is the bar's height); the
   shorter page heroes stay on the bottom edge, over the content they lead into. */
.hero{position:relative;min-height:min(100svh,980px);display:flex;align-items:center;padding:calc(var(--nav-h) + var(--s8)) 0 var(--s8)}
.hero.short{min-height:min(76svh,760px);align-items:flex-end}
.hero.page{min-height:0;padding:calc(var(--nav-h) + var(--s9)) 0 var(--s8)}
.hero > .cine{bottom:-2px}
.hero .cine-shade{background:linear-gradient(0deg,var(--bg) 0%,rgba(14,11,9,.97) 6%,rgba(14,11,9,.88) 14%,rgba(14,11,9,.7) 25%,rgba(14,11,9,.46) 38%,rgba(14,11,9,.22) 52%,rgba(14,11,9,.06) 66%,rgba(14,11,9,0) 78%),linear-gradient(90deg,rgba(14,11,9,.78) 0%,rgba(14,11,9,.25) 55%,rgba(14,11,9,0) 100%),linear-gradient(180deg,rgba(0,0,0,.45) 0%,rgba(0,0,0,0) 40%),radial-gradient(ellipse 80% 75% at 50% 40%,rgba(0,0,0,0) 50%,rgba(0,0,0,.3) 100%)}
.hero .cols{align-items:center;width:100%}
.kicker{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s2) var(--s4);font:600 var(--t-xs)/1.4 var(--f-ui);letter-spacing:.12em;text-transform:uppercase;color:var(--text-2)}
.kicker .ta{text-transform:none;letter-spacing:0;font-size:13px}
.kicker a{text-decoration:none}
.kicker a:hover{color:var(--text)}
.live{color:var(--amber)}
.hero .kicker + .display{margin-top:var(--s5)}
.hero .display{max-width:20ch}
/* Stacked under the text (tablets and phones), the reel stays a comfortable size instead of filling the width. */
@media (max-width:1023px){.hero #reel{max-width:440px}}
@media (max-width:560px){.kicker{gap:var(--s1) var(--s3)}}
.hero .display.ta{max-width:30ch}
/* Tamil pages: Tamil has no capitals and spaced-out letters break its clusters, so labels drop both. */
html[lang="ta"] :is(.kicker,.verdict .who,.eyebrow,.label,.subhead,.topic-label,.reel-top,.reel-meta,.icard-day,.chip,.vs .who,.foot-links h4){letter-spacing:0;text-transform:none}
.verdict{margin:var(--s5) 0 0;max-width:52ch;font:italic 400 var(--t-xl)/1.45 var(--f-serif);color:var(--text)}
.verdict.ta{font:500 var(--t-md)/1.8 var(--f-ta);font-style:normal}
.verdict .who{margin-right:.75em;font:600 var(--t-xs)/1 var(--f-ui);font-style:normal;letter-spacing:.12em;text-transform:uppercase;color:var(--amber);white-space:nowrap}
.actions{display:flex;flex-wrap:wrap;gap:var(--s3);margin-top:var(--s6)}
/* On a phone a row of buttons fills the width evenly, and a long label (Tamil) wraps inside its button. */
@media (max-width:560px){.actions .btn{flex:1 1 auto;white-space:normal;height:auto;min-height:44px;padding-block:10px;line-height:1.3;text-align:center}.hero .actions .btn{flex:1 1 100%}}

/* ---- the reel card ---- */
.reel{position:relative;aspect-ratio:1;border-radius:var(--r-lg);overflow:hidden;background:var(--deep);border:1px solid var(--line-2);box-shadow:0 40px 90px -30px rgba(0,0,0,.8)}
.reel video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background:#000}
.reel-cover{position:absolute;inset:0;border:0;padding:0;margin:0;background:none;cursor:pointer;color:var(--text);display:block;width:100%}
.reel-cover img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:url(#grade);transition:transform .8s var(--ease)}
.reel-cover:hover img{transform:scale(1.04)}
.reel-cover::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.5),rgba(0,0,0,.1) 24%,rgba(0,0,0,0) 45%,rgba(0,0,0,.62))}
.reel-play{position:absolute;z-index:2;left:50%;top:50%;transform:translate(-50%,-50%);width:68px;height:68px;border-radius:50%;background:rgba(234,220,194,.95);color:var(--ink);display:grid;place-items:center;box-shadow:0 12px 40px rgba(0,0,0,.45);transition:transform .25s var(--ease)}
.reel-cover:hover .reel-play{transform:translate(-50%,-50%) scale(1.06)}
.reel-play svg{width:24px;height:24px;margin-left:3px}
.reel-meta{position:absolute;z-index:2;left:var(--s4);right:var(--s4);bottom:var(--s4);display:flex;justify-content:space-between;align-items:center;gap:var(--s3);font:600 13px/1.3 var(--f-ui)}
.reel-meta .ta{font:700 15px/1.4 var(--f-ta)}
.reel-meta > :first-child{flex:1;min-width:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.reel-meta > :last-child{flex-shrink:0;white-space:nowrap}
.reel-top{position:absolute;z-index:2;left:var(--s4);right:var(--s4);top:var(--s3);display:flex;justify-content:space-between;font:600 12px/1.3 var(--f-ta);color:rgba(244,237,227,.85)}

/* ---- the strip of figures ---- */
.figures{display:grid;grid-template-columns:repeat(var(--n,4),minmax(0,1fr))}
.figures > div{padding:var(--s6) var(--s5);border-left:1px solid var(--line)}
.figures > div:first-child{border-left:0;padding-left:0}
.figures b{display:block;font:500 var(--t-3xl)/1 var(--f-serif);letter-spacing:-.02em;margin-bottom:var(--s2)}
.figures span{font-size:13px;color:var(--muted)}
@media (max-width:760px){.figures{grid-template-columns:repeat(2,minmax(0,1fr))}.figures > div:nth-child(3){border-left:0;padding-left:0}.figures > div:nth-child(n+3){padding-top:0}}

/* ---- section heads ---- */
.head{display:flex;flex-wrap:wrap;gap:var(--s4) var(--s6);justify-content:space-between;align-items:flex-end;margin-bottom:var(--s7)}
.head .h2{margin-top:var(--s3);max-width:24ch}
.head p.dim{margin-top:var(--s3);max-width:52ch}

/* ---- cards ---- */
.card{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--s5)}
.card.pad{padding:var(--s6)}
@media (max-width:560px){.card.pad{padding:var(--s5)}}

/* ---- issue cards ---- */
.icard{display:flex;flex-direction:column;text-decoration:none;border-radius:var(--r-lg);overflow:hidden;background:var(--bg-2);border:1px solid var(--line);transition:border-color .25s,transform .35s var(--ease)}
.icard:hover{border-color:var(--line-3);transform:translateY(-3px)}
.icard-img{position:relative;aspect-ratio:16/10;overflow:hidden;background:var(--deep)}
.icard-img img{width:100%;height:100%;object-fit:cover;filter:url(#grade);transition:transform .9s var(--ease)}
.icard:hover .icard-img img{transform:scale(1.05)}
.icard-img::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 50%,rgba(10,8,7,.75))}
.icard-day{position:absolute;z-index:2;left:var(--s4);bottom:var(--s3);font:700 12px/1 var(--f-ta);color:var(--sand);background:rgba(42,32,25,.9);padding:7px 10px;border-radius:6px}
.icard-body{padding:var(--s5);display:flex;flex-direction:column;gap:var(--s2);flex:1}
.icard-date{font:600 var(--t-xs)/1.4 var(--f-ui);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.icard-ta{font:700 var(--t-md)/1.5 var(--f-ta);color:var(--text)}
.icard-en{font:400 var(--t-md)/1.4 var(--f-serif);color:var(--text-2)}
.icard-foot{margin-top:auto;padding-top:var(--s3)}

/* ---- chips ---- */
.chip{display:inline-flex;align-items:center;gap:7px;height:26px;padding:0 10px;border-radius:999px;border:1px solid var(--line-2);background:rgba(244,237,227,.04);font:600 12px/1 var(--f-ui);color:var(--text-2);white-space:nowrap}
.chip .ico{font-style:normal;font-weight:800}
.v-true{color:#A6D8B8;border-color:rgba(95,167,122,.45)}.v-false{color:#F2A99B;border-color:rgba(210,90,67,.5)}.v-misleading{color:#F0C47F;border-color:rgba(215,154,53,.5)}.v-unproven{color:var(--text-2)}
.k-confirmed{color:#A6D8B8}.k-reported{color:var(--sand)}.k-disputed{color:#F0C47F}.k-unverified{color:var(--muted)}

/* ---- where people stand ---- */
.split{display:flex;gap:2px;height:16px;margin:var(--s5) 0 var(--s4)}
.split.lg{height:22px}
.split span{display:block;height:100%;min-width:2px}
.split span:first-child{border-radius:4px 0 0 4px}.split span:last-child{border-radius:0 4px 4px 0}.split span:only-child{border-radius:4px}
.legend{display:flex;flex-wrap:wrap;gap:var(--s2) var(--s5);font-size:var(--t-sm);color:var(--text-2);margin:0;padding:0;list-style:none}
.legend li{display:flex;align-items:center;gap:var(--s2)}
.legend i{width:10px;height:10px;border-radius:3px;flex:none}
.legend b{color:var(--text);font-weight:600}
.share{height:4px;border-radius:2px;background:rgba(234,220,194,.1);overflow:hidden;margin:var(--s3) 0 var(--s4)}
.share span{display:block;height:100%;background:var(--sand);border-radius:0 2px 2px 0}
/* The home page's "how Tamil Nadu is talking": the question and the split beside three group cards on a wide screen;
   below that, the question on top and the cards in a row under it, so no card gets squeezed. */
@media (max-width:1279px){.talking .cols{grid-template-columns:minmax(0,1fr)}.talking .cols > *{grid-column:1/-1!important}.talking .cols > .span-5 > *{max-width:760px}}
@media (min-width:768px) and (max-width:1279px){.talking .g3{grid-template-columns:repeat(3,minmax(0,1fr))}.talking .g3 > .card:last-child{grid-column:auto}}
.cluster{display:flex;flex-direction:column}
.cluster .pct{font:500 var(--t-2xl)/1 var(--f-serif);letter-spacing:-.01em}
.cluster .who{font:600 var(--t-sm)/1.4 var(--f-ui);color:var(--text-2);margin-top:var(--s2)}
.cluster .who.ta{font:600 15px/1.5 var(--f-ta)}
.cluster .says{font:500 var(--t-base)/1.7 var(--f-ta);color:var(--text)}
.cluster .says-en{font:400 15px/1.55 var(--f-serif);color:var(--text-2);margin-top:var(--s2)}
.cluster .meta{margin-top:auto;padding-top:var(--s4);display:flex;flex-wrap:wrap;align-items:center;gap:var(--s2) var(--s3);font-size:12.5px;line-height:1.4;color:var(--muted)}
.cluster .meta.ta{font:500 13px/1.5 var(--f-ta)}

/* ---- the brief: contents, article, reel ---- */
.brief{display:grid;grid-template-columns:200px minmax(0,760px) 340px;justify-content:space-between;gap:var(--s7);align-items:start}
.brief > nav,.brief > aside{position:sticky;top:calc(var(--nav-h) + var(--s5))}
@media (max-width:1279px){.brief{grid-template-columns:minmax(0,1fr) 320px}.brief > nav{display:none}}
@media (max-width:1023px){.brief{grid-template-columns:minmax(0,1fr)}.brief > aside{position:static;order:-1;max-width:460px}}
.toc{list-style:none;margin:var(--s3) 0 0;padding:0;display:grid;gap:2px;font-size:var(--t-sm)}
.toc a{display:block;padding:8px 0 8px 14px;text-decoration:none;color:var(--muted);border-left:2px solid var(--line)}
.toc a:hover{color:var(--text)}
.toc a.on{color:var(--text);border-left-color:var(--amber)}
.block{padding-bottom:var(--s8);scroll-margin-top:calc(var(--nav-h) + var(--s4))}
.block-head{display:flex;align-items:baseline;gap:var(--s4);margin-bottom:var(--s6)}
.block-head .n{font:500 var(--t-md)/1 var(--f-serif);color:var(--amber)}
.prose{font:400 19px/1.7 var(--f-serif);color:var(--text)}
.prose.ta{font:400 var(--t-md)/1.9 var(--f-ta)}
.prose p + p{margin-top:var(--s4)}
.list{list-style:none;margin:0;padding:0;display:grid;gap:var(--s3)}
.list li{position:relative;padding-left:var(--s5);line-height:1.6;overflow-wrap:anywhere}
.list li::before{content:"";position:absolute;left:2px;top:.62em;width:6px;height:6px;border-radius:2px;background:var(--amber)}
.list.plain li::before{background:var(--line-3)}
.src{font-size:13px;color:var(--muted);text-decoration:none;overflow-wrap:anywhere;white-space:normal}
.src:hover{color:var(--amber)}
.src::before{content:"↗ "}
.subhead{font:600 var(--t-xs)/1.4 var(--f-ui);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:var(--s7) 0 var(--s4)}
.subhead.ta{letter-spacing:0;text-transform:none;font-size:13px}
.take-big{font:400 clamp(22px,2.1vw,28px)/1.5 var(--f-serif);color:var(--text)}
.take-big.ta{font:500 clamp(19px,1.8vw,23px)/1.8 var(--f-ta)}
.take-big + .prose{margin-top:var(--s5);color:var(--text-2)}
/* What most coverage misses: the nuance the show promises, set apart from the research around it. */
.missed{margin-top:var(--s6);padding:var(--s5) var(--s5) var(--s5) var(--s6);border-left:2px solid var(--amber);border-radius:0 var(--r) var(--r) 0;background:linear-gradient(90deg,rgba(233,188,126,.08),rgba(233,188,126,.02) 80%)}
.missed .subhead{margin:0 0 var(--s3);color:var(--amber)}
@media (max-width:560px){.missed{padding:var(--s4) var(--s4) var(--s4) var(--s5)}}
.take-alt{font:400 var(--t-base)/1.75 var(--f-ta);color:var(--muted);margin-top:var(--s4)}
.take-alt.en{font:400 17px/1.6 var(--f-serif)}
.facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border:1px solid var(--line);border-radius:var(--r-lg);margin-top:var(--s6)}
.facts > div{padding:var(--s5)}
.facts > div + div{border-left:1px solid var(--line)}
@media (max-width:640px){.facts{grid-template-columns:minmax(0,1fr)}.facts > div + div{border-left:0;border-top:1px solid var(--line)}}
.meter{height:6px;border-radius:3px;background:rgba(234,220,194,.12);overflow:hidden}
.meter span{display:block;height:100%;background:var(--sand);border-radius:0 3px 3px 0}
.meter.warn span{background:var(--warn)}.meter.bad span{background:var(--bad)}
.timeline{list-style:none;margin:0;padding:0 0 0 var(--s5);border-left:1px solid var(--line-2);display:grid;gap:var(--s5)}
.timeline li{position:relative}
.timeline li::before{content:"";position:absolute;left:calc(-1 * var(--s5) - 6px);top:5px;width:11px;height:11px;border-radius:50%;background:var(--bg);border:2px solid var(--amber)}
.timeline time{display:block;font:600 var(--t-xs)/1.4 var(--f-ui);letter-spacing:.08em;text-transform:uppercase;color:var(--amber);margin-bottom:var(--s1)}
.stat .figure{font:500 var(--t-2xl)/1.15 var(--f-serif);letter-spacing:-.01em;margin-bottom:var(--s2)}
.stat p{color:var(--text-2);font-size:15px;margin-bottom:var(--s3)}
.claim{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--s2);padding:var(--s5) 0;border-bottom:1px solid var(--line)}
.claim:first-child{padding-top:0}
.claim:last-child{border-bottom:0}
.claim b{font-weight:600;line-height:1.5}
.claim p{color:var(--text-2);font-size:15px;line-height:1.6}
.person{display:flex;gap:var(--s4);align-items:flex-start;padding:var(--s4) 0;border-bottom:1px solid var(--line)}
.person:last-child{border-bottom:0}
.avatar{width:36px;height:36px;border-radius:50%;flex:none;background:var(--espresso);color:var(--sand);display:grid;place-items:center;font:700 14px/1 var(--f-ui)}
.note{font-size:13px;color:var(--muted);margin-top:var(--s6);padding-top:var(--s4);border-top:1px solid var(--line)}
.more{margin-top:var(--s4)}
.more > summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:var(--s2);min-height:44px;font:600 var(--t-sm)/1 var(--f-ui);color:var(--amber);padding:var(--s2) 0}
.more > summary::-webkit-details-marker{display:none}
.more > summary::after{content:"↓"}
.more[open] > summary{display:none}
/* Sharing: the link on its own row, the places to share it in an even row under it. */
.share-row{display:flex;flex-wrap:wrap;gap:var(--s2)}
.share-row .btn{flex:1 1 0;min-width:0;padding-inline:var(--s3)}
.share-row [data-copy]{flex-basis:100%;order:-1}
.dl{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:var(--s3) var(--s5);margin:0}
.dl dt{color:var(--muted);font-size:var(--t-sm)}.dl dd{margin:0}
@media (max-width:640px){.dl{grid-template-columns:minmax(0,1fr);gap:var(--s1)}.dl dd{margin-bottom:var(--s3)}}

/* ---- the record ---- */
.filters{display:flex;flex-wrap:wrap;gap:var(--s2);margin-bottom:var(--s6)}
.filters a{text-decoration:none}
.filters a.on .chip{background:rgba(234,220,194,.14);color:var(--text);border-color:var(--sand)}
.pos{display:grid;grid-template-columns:140px minmax(0,1fr);gap:var(--s6);padding:var(--s6) 0;border-top:1px solid var(--line)}
@media (max-width:640px){.pos{grid-template-columns:minmax(0,1fr);gap:var(--s2)}}
.pos time{font:600 13px/1.6 var(--f-ui);color:var(--muted)}
.pos .topic-label{font:600 var(--t-xs)/1.4 var(--f-ui);letter-spacing:.1em;text-transform:uppercase;color:var(--amber);text-decoration:none}
.pos .stance{font:400 var(--t-lg)/1.55 var(--f-serif);margin:var(--s2) 0 var(--s3);max-width:68ch}
.pos .stance.ta{font:500 var(--t-base)/1.8 var(--f-ta)}
.records{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:var(--s8)}
@media (max-width:1023px){.records{grid-template-columns:minmax(0,1fr)}}
.records .pos{grid-template-columns:minmax(0,1fr);gap:var(--s2)}
/* A list of positions has a line between rows, never above the first, so nothing reads as a divider under a heading. */
.pos:first-of-type{border-top:0;padding-top:0}
@media (min-width:1024px){.records .pos:nth-of-type(2){border-top:0;padding-top:0}}

/* ---- steps ---- */
.steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:0;padding:0;list-style:none}
.steps li{padding:0 var(--s5) 0 0}
.steps li + li{padding-left:var(--s5);border-left:1px solid var(--line)}
.steps .n{display:block;font:500 var(--t-3xl)/1 var(--f-serif);color:var(--amber);margin-bottom:var(--s5)}
.steps h3{font:600 var(--t-md)/1.35 var(--f-ui);margin-bottom:var(--s2)}
.steps h3.ta{font-family:var(--f-ta)}
.steps p{color:var(--text-2);font-size:15px}
@media (max-width:1023px){.steps{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:var(--s7)}.steps li:nth-child(3){border-left:0;padding-left:0}}
@media (max-width:560px){.steps{grid-template-columns:minmax(0,1fr)}.steps li + li{border-left:0;padding-left:0}}

/* ---- a full-bleed cinematic band ---- */
/* A scene band: a picture that fades in out of the page's colour and back into it, with no edge or line, so the page
   reads as one surface the scenes rise out of. --veil darkens the picture under the text: lighter where the band
   carries a few lines (the API), heavier under a list (.quiet). */
.band{position:relative;overflow:hidden;isolation:isolate;padding-block:clamp(120px,13vw,220px)}
.band .cine-shade{--veil:linear-gradient(90deg,rgba(14,11,9,.9) 0%,rgba(14,11,9,.72) 45%,rgba(14,11,9,.4) 100%);background:linear-gradient(180deg,var(--bg) 0%,rgba(14,11,9,.94) 7%,rgba(14,11,9,.72) 17%,rgba(14,11,9,.4) 29%,rgba(14,11,9,.12) 40%,rgba(14,11,9,0) 48%,rgba(14,11,9,0) 52%,rgba(14,11,9,.12) 60%,rgba(14,11,9,.4) 71%,rgba(14,11,9,.72) 83%,rgba(14,11,9,.94) 93%,var(--bg) 100%),var(--veil)}
.band.quiet .cine-shade{--veil:linear-gradient(rgba(14,11,9,.74),rgba(14,11,9,.74))}
.band .cols{align-items:center}

/* ---- why an account: the receipt of what a brief took, and asking a chatbot yourself against it ---- */
.proof{display:block;margin-top:var(--s5);font-size:14px;line-height:1.6;color:var(--text-2);text-decoration:none}
.proof:hover span{color:var(--text)}
.proof b{display:inline-flex;align-items:center;gap:6px;color:var(--amber);font-weight:600;white-space:nowrap}
.proof.ta{font-family:var(--f-ta);font-size:13.5px}
.worked{display:flex;gap:12px;align-items:baseline;margin:-8px 0 var(--s6);padding:12px 16px;border:1px dashed var(--line-2);border-radius:var(--r);font-size:15px;color:var(--text-2)}
.worked b{color:var(--text)}
.worked > span{min-width:0}
.worked a{color:var(--amber)}
.worked.ta{font-family:var(--f-ta);font-size:14.5px;line-height:1.8}
.receipt{display:flex;flex-direction:column;gap:var(--s4);background:linear-gradient(180deg,var(--bg-3),var(--bg-2))}
@media (min-width:1024px){.why .receipt{position:sticky;top:calc(var(--nav-h) + var(--s5))}}
.receipt-total b{display:block;font:500 var(--t-5xl)/1 var(--f-serif);letter-spacing:-.03em;color:var(--sand);font-variant-numeric:tabular-nums}
.receipt-total span{display:block;margin-top:var(--s2);font-size:var(--t-sm);color:var(--muted)}
.receipt dl{margin:0;border-top:1px dashed var(--line-2)}
.receipt dl > div{display:flex;justify-content:space-between;align-items:baseline;gap:var(--s4);padding:10px 0;border-bottom:1px dashed var(--line-2)}
.receipt dt{color:var(--text-2);font-size:15px;line-height:1.45}
.receipt dt.ta{font-size:14px;line-height:1.7}
.receipt dd{margin:0;font:600 15px/1.4 var(--f-ui);font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap;color:var(--text)}
.receipt-month{display:grid;gap:var(--s2)}
.receipt-month p{font-size:15px}
.receipt-month b{color:var(--text)}
.receipt .free{font:500 var(--t-xl)/1.3 var(--f-serif);color:var(--text)}
.receipt .free.ta{font:600 var(--t-md)/1.6 var(--f-ta)}
.receipt .free b{color:var(--amber)}
.receipt .fine{font-size:12.5px;color:var(--muted)}
.vs{width:100%;border-collapse:collapse;font-size:15px;line-height:1.5}
.vs th,.vs td{text-align:left;vertical-align:top;padding:var(--s4) var(--s4) var(--s4) 0;border-bottom:1px solid var(--line)}
.vs thead th{padding-top:0;font:600 var(--t-xs)/1.4 var(--f-ui);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.vs thead th.ta{letter-spacing:0;text-transform:none;font-size:13px}
.vs thead th.us{color:var(--amber)}
.vs tbody th{width:20%;font-weight:600;color:var(--text)}
.vs td{width:40%;color:var(--muted)}
.vs td.us{color:var(--text)}
.vs .ta{font-family:var(--f-ta);font-size:14px;line-height:1.75}
.vs .who{display:none}
.gets{margin-top:var(--s6)}
.gets ul{margin:var(--s3) 0 0;padding:0;list-style:none;display:grid;gap:var(--s2)}
.gets li{position:relative;padding-left:22px;color:var(--text-2)}
.gets li::before{content:"";position:absolute;left:2px;top:.62em;width:10px;height:6px;border-left:2px solid var(--amber);border-bottom:2px solid var(--amber);transform:rotate(-45deg) translateY(-3px)}
@media (max-width:720px){
  .vs thead{display:none}
  .vs,.vs tbody,.vs tr,.vs th,.vs td,.vs tbody th{display:block;width:auto}
  .vs tr{padding:var(--s4) 0;border-bottom:1px solid var(--line)}
  .vs th,.vs td{border:0;padding:2px 0}
  .vs tbody th{margin-bottom:var(--s2)}
  .vs td + td{margin-top:var(--s2)}
  .vs .who{display:block;font:600 11px/1.4 var(--f-ui);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
  .vs td.us .who{color:var(--amber)}
  .worked{flex-wrap:wrap}
}

/* ---- forms ---- */
.field{display:grid;gap:var(--s2);margin-bottom:var(--s4)}
.field label,.flabel{font:600 13px/1.3 var(--f-ui);color:var(--text-2)}
.input{width:100%;min-width:0;height:46px;padding:0 var(--s4);border-radius:var(--r-sm);border:1px solid var(--line-2);background:rgba(10,8,7,.6);color:var(--text);font:var(--t-base)/1.4 var(--f-ui);transition:border-color .2s,box-shadow .2s}
textarea.input{height:auto;min-height:104px;padding:var(--s3) var(--s4);resize:vertical}
select.input{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);background-position:calc(100% - 20px) 50%,calc(100% - 15px) 50%;background-size:5px 5px;background-repeat:no-repeat;padding-right:40px}
.input:hover{border-color:var(--line-3)}
/* A field looks the same focused as it does at rest: no border colour, glow or outline (the caret shows where you are). */
.input:focus{outline:none;border-color:var(--line-2)}
:is(input:not([type=checkbox],[type=radio]),textarea,select):is(:focus,:focus-visible){outline:none;box-shadow:none}
.input::placeholder{color:rgba(244,237,227,.36)}
.input[disabled]{opacity:.6}
.hint{font-size:13px;color:var(--muted)}
.alert{border-radius:var(--r-sm);padding:var(--s3) var(--s4);margin:0 0 var(--s5);font-size:var(--t-sm);border:1px solid var(--line-2);background:rgba(244,237,227,.05)}
.alert.err{border-color:rgba(210,90,67,.5);background:rgba(210,90,67,.1);color:#F6C2B8}
.alert.ok{border-color:rgba(95,167,122,.45);background:rgba(95,167,122,.1);color:#CBE9D5}
.search{display:flex;flex-wrap:wrap;gap:var(--s2);width:min(100%,460px)}
.search > .input{flex:1 1 160px;min-width:0}
.inline-form{display:flex;flex-wrap:wrap;gap:var(--s2)}
.inline-form .input{flex:1 1 280px;max-width:440px}

/* ---- sign in ---- */
.auth{position:relative;min-height:100svh;display:grid;grid-template-columns:minmax(0,1fr);place-items:center;padding:calc(var(--nav-h) + var(--s7)) var(--gutter) var(--s7)}
.auth .cine-shade{background:radial-gradient(ellipse at center,rgba(14,11,9,.35),rgba(14,11,9,.88)),linear-gradient(0deg,rgba(14,11,9,.7),rgba(14,11,9,.2))}
.auth-card{position:relative;z-index:2;width:min(420px,100%);background:rgba(19,16,13,.86);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border:1px solid var(--line-2);border-radius:var(--r-lg);padding:var(--s7) var(--s6) var(--s6)}
.auth-card h1{font:500 var(--t-3xl)/1.1 var(--f-serif);letter-spacing:-.015em;margin-bottom:var(--s2)}
html[lang="ta"] .auth-card h1{font:600 var(--t-2xl)/1.4 var(--f-serif-ta);letter-spacing:0}
.auth-card .sub{color:var(--text-2);margin-bottom:var(--s6)}
.auth-card .btn{width:100%;margin-top:var(--s2)}
.auth-alt{text-align:center;margin-top:var(--s5);font-size:var(--t-sm);color:var(--text-2)}
/* Turnstile's check is at least 300px wide: on a narrow phone the card keeps that much room inside it. */
@media (max-width:440px){.auth{padding-inline:12px}.auth-card{padding:var(--s6) 12px var(--s5)}}

/* ---- search, versions and days ---- */
.section.tight{padding-block:var(--s7) var(--s6)}
.searchbox{display:grid;grid-template-columns:minmax(0,1fr) 200px 190px auto;gap:var(--s3);align-items:end}
.searchbox .asof{display:grid;gap:6px}
@media (max-width:860px){.searchbox{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.searchbox #q{grid-column:1/-1}.searchbox .btn{grid-column:1/-1}}
@media (max-width:480px){.searchbox{grid-template-columns:minmax(0,1fr)}}
.hits{display:grid;gap:var(--s3)}
.hit{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--s4) var(--s5);display:grid;gap:var(--s3)}
.hit p{color:var(--text);font:400 var(--t-md)/1.55 var(--f-serif)}
.hit p.ta{font:400 var(--t-base)/1.8 var(--f-ta)}
.versionbar{display:flex;flex-wrap:wrap;gap:var(--s3) var(--s5);align-items:center;margin-top:var(--s5);padding:var(--s3) var(--s4);border:1px solid var(--line-2);border-radius:var(--r);background:var(--bg-1);font-size:var(--t-sm);color:var(--text-2)}
.versionbar.past{border-color:rgba(233,188,126,.5);background:rgba(233,188,126,.07)}
.versionbar .versions{display:inline-flex;gap:var(--s2);margin-left:auto}
.versionbar .versions a,.versionbar .versions b{display:inline-flex;align-items:center;height:26px;padding:0 10px;border-radius:999px;border:1px solid var(--line-2);text-decoration:none}
.versionbar .versions b{background:rgba(234,220,194,.14);color:var(--text)}

/* ---- the API docs ---- */
.docs{display:grid;grid-template-columns:220px minmax(0,820px);justify-content:start;gap:var(--s9);padding-top:calc(var(--nav-h) + var(--s8));padding-bottom:var(--s9)}
.docs > nav{position:sticky;top:calc(var(--nav-h) + var(--s5));align-self:start;display:grid;gap:2px;font-size:var(--t-sm)}
.docs > nav a{padding:6px 0 6px 14px;text-decoration:none;color:var(--muted);border-left:2px solid var(--line)}
.docs > nav a:hover{color:var(--text);border-left-color:var(--line-3)}
.docs > nav .g{font:600 11px/1 var(--f-ui);letter-spacing:.14em;text-transform:uppercase;color:var(--text-2);padding:var(--s5) 0 var(--s2)}
.docs > nav .g:first-child{padding-top:0}
/* Narrower than a laptop the contents column goes (after the rules above, so it stays gone) and the article takes the width. */
@media (max-width:960px){.docs{grid-template-columns:minmax(0,1fr)}.docs > nav{display:none}}
.docs article{min-width:0}
.docs h1{font:500 var(--t-4xl)/1.05 var(--f-serif);letter-spacing:-.02em;margin:var(--s3) 0 var(--s5)}
.docs h2{font:500 var(--t-2xl)/1.2 var(--f-serif);margin:var(--s9) 0 var(--s4)}
.docs h3{font:600 var(--t-md)/1.4 var(--f-ui);margin:var(--s6) 0 var(--s3)}
.docs p,.docs li{color:var(--text-2);line-height:1.7}
.docs p + p{margin-top:var(--s3)}
.docs .lede{margin-bottom:var(--s5)}
.callout{margin:var(--s5) 0;padding:var(--s4) var(--s5);border:1px solid var(--line-2);border-left:3px solid var(--amber);border-radius:var(--r-sm);background:var(--bg-2);color:var(--text-2);line-height:1.7}
.callout b{color:var(--text)}
html[lang="ta"] .callout{font-family:var(--f-ta);font-size:15px;line-height:1.85}
.ep{display:flex;flex-wrap:wrap;gap:var(--s3);align-items:center;margin:var(--s7) 0 var(--s3)}
.ep .m{font:700 11px/1 var(--f-mono);color:var(--ink);background:var(--sand);padding:5px 7px;border-radius:5px}
.ep .p{font:600 var(--t-md)/1.3 var(--f-mono);color:var(--text)}
.params{width:100%;border-collapse:collapse;font-size:15px;margin:var(--s4) 0}
.params td{border-top:1px solid var(--line);padding:var(--s3) var(--s3) var(--s3) 0;vertical-align:top;color:var(--text-2)}
.params td:first-child{white-space:nowrap;color:var(--text);font:500 13.5px/1.7 var(--f-mono);width:1%;padding-right:var(--s6)}
/* On a phone each parameter is a row of its own: the name, then what it does under it. */
@media (max-width:560px){.params,.params tbody,.params tr,.params td{display:block;width:auto}.params tr{border-top:1px solid var(--line);padding:var(--s3) 0}.params td{border:0;padding:0}.params td:first-child{width:auto;white-space:normal;overflow-wrap:anywhere;padding:0 0 var(--s1)}}

/* ---- code ---- */
code,.kbd{font:13px/1.5 var(--f-mono);background:rgba(234,220,194,.08);border:1px solid var(--line);border-radius:5px;padding:1px 5px;color:var(--sand)}
.code{position:relative;background:var(--deep);border:1px solid var(--line);border-radius:var(--r);margin:var(--s4) 0}
.code pre{margin:0;padding:var(--s5);overflow-x:auto;font:13.5px/1.7 var(--f-mono);color:#E8DCC6}
.code .tag{display:block;padding:var(--s3) var(--s5) 0;font:600 11px/1 var(--f-ui);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.code .copy{position:absolute;top:var(--s3);right:var(--s3)}
.code:has(> .copy) pre{padding-right:96px}
/* On a narrow screen the copy button sits above the code, not on top of it. */
@media (max-width:640px){.code .copy{position:static;display:flex;width:max-content;margin:0 var(--s3) var(--s3) auto}.code:has(> .copy) pre{padding-right:var(--s5)}}
.secret{display:flex;gap:var(--s3);align-items:center;background:var(--deep);border:1px solid rgba(233,188,126,.45);border-radius:var(--r-sm);padding:var(--s3) var(--s4);font:14px/1.4 var(--f-mono);color:var(--sand);word-break:break-all}

/* ---- the dashboard ---- */
.app{display:grid;grid-template-columns:248px minmax(0,1fr);min-height:100svh}
.side{position:sticky;top:0;height:100svh;background:var(--bg-1);border-right:1px solid var(--line);padding:0 var(--s3) var(--s4);display:flex;flex-direction:column;gap:2px}
.side .brand{height:var(--nav-h);margin:0 calc(-1 * var(--s3)) var(--s4);padding:0 var(--s5);border-bottom:1px solid var(--line)}
.side a.item{display:flex;align-items:center;gap:var(--s3);height:40px;padding:0 var(--s3);border-radius:var(--r-sm);text-decoration:none;color:var(--text-2);font:500 var(--t-sm)/1 var(--f-ui)}
.side a.item:hover{background:rgba(234,220,194,.06);color:var(--text)}
.side a.item[aria-current=page]{background:rgba(234,220,194,.1);color:var(--text)}
.side a.item svg{width:18px;height:18px;opacity:.85;flex:none}
.side .foot{margin-top:auto;border-top:1px solid var(--line);padding:var(--s4) var(--s3) 0;font-size:13px;display:grid;gap:var(--s2)}
.side .foot a{color:var(--muted);text-decoration:none}
.side .foot a:hover{color:var(--text)}
.main{min-width:0;display:flex;flex-direction:column}
.topbar{height:var(--nav-h);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:var(--s4);padding:0 var(--s6);position:sticky;top:0;background:rgba(14,11,9,.9);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);z-index:10}
.topbar h1{font:500 var(--t-xl)/1 var(--f-serif)}
.topbar .end{margin-left:auto;display:flex;align-items:center;gap:var(--s3);font-size:var(--t-sm);color:var(--text-2)}
/* The page's content keeps a readable width and sits in the middle of a wide screen; the top bar's title and controls
   line up with it. */
.content{padding:var(--s6);width:100%;max-width:1400px;margin-inline:auto}
.topbar{padding-inline:max(var(--s6),calc((100% - 1400px) / 2 + var(--s6)))}
@media (max-width:1279px){.content .cols,.content .g2{grid-template-columns:minmax(0,1fr)}.content .cols > *{grid-column:1/-1!important}}
/* Below a laptop the sidebar becomes a bar across the top: the name (and the owner's sign-out) on one row, the
   sections as evenly spaced icons on the next (--items, set by the page: one column each). */
@media (max-width:960px){
.app{grid-template-columns:minmax(0,1fr)}
.side{position:static;height:auto;display:grid;grid-template-columns:repeat(var(--items,7),minmax(0,1fr));align-items:center;padding:0 var(--s3) var(--s2);gap:2px;border-right:0;border-bottom:1px solid var(--line)}
.side .brand{grid-row:1;grid-column:1/-1;height:56px;border:0;margin:0;padding:0 var(--s2)}
.side:has(> form) .brand{grid-column:1/6}
.side > form{grid-row:1;grid-column:6/-1;justify-self:end;margin:0!important}
.side .foot{display:none}
.side a.item{justify-content:center;height:44px;padding:0}
.side a.item span{display:none}
.topbar,.content{padding-left:var(--s4);padding-right:var(--s4)}
.topbar .hide-sm{display:none}}
/* On a phone the top bar keeps the title, the language and sign-out; the plan badge goes (the overview shows it). */
@media (max-width:560px){
.topbar{gap:var(--s3)}
.topbar h1{font-size:20px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.topbar .end{gap:var(--s2)}
.app .topbar .end > .chip{display:none}
.topbar .end .btn-sm{padding-inline:10px}
.topbar .lang a{height:36px;padding:0 8px}}
.panel{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--s5);margin-bottom:var(--s5)}
.panel.accent{border-color:rgba(233,188,126,.45)}
.panel.danger{border-color:rgba(210,90,67,.35)}
.panel-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:var(--s3);margin-bottom:var(--s4);min-height:36px}
.panel-head h2{font:600 var(--t-base)/1.3 var(--f-ui);min-width:0;overflow-wrap:anywhere}
/* A table wider than its panel scrolls inside the panel, never the page. */
.panel:has(> .table){overflow-x:auto}
.panel > p.dim{margin-bottom:var(--s4)}
/* "Show more" toggles inside the dashboard's panels are a comfortable tap on a phone. */
.content details > summary{padding-block:10px;cursor:pointer}
/* Tiles always fill even rows: three across (or one under another), four across on a wide screen and two by two below. */
.tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s5);margin-bottom:var(--s5)}
.tiles:has(> :nth-child(4)){grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:1279px){.tiles:has(> :nth-child(4)){grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:760px){.tiles{grid-template-columns:minmax(0,1fr)}}
@media (min-width:481px) and (max-width:760px){.tiles:has(> :nth-child(4)){grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:480px){.tiles:has(> :nth-child(4)){grid-template-columns:minmax(0,1fr)}}
.tile{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--s5);display:flex;flex-direction:column;gap:var(--s2)}
.tile .value{font:500 var(--t-3xl)/1 var(--f-serif);letter-spacing:-.02em;margin-top:var(--s1)}
html[lang="ta"] .tile .value{font-size:var(--t-2xl);letter-spacing:0}
.tile .value small{font:500 var(--t-base) var(--f-ui);color:var(--muted)}
.tile .sub{font-size:13px;color:var(--muted);margin-top:auto}
.hero-num{font:500 56px/1 var(--f-serif);letter-spacing:-.03em}
.table{width:100%;border-collapse:collapse;font-size:var(--t-sm)}
.table th{text-align:left;font:600 11px/1.3 var(--f-ui);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding:var(--s3);border-bottom:1px solid var(--line)}
.table td{padding:var(--s3);border-bottom:1px solid var(--line);vertical-align:middle}
.table tr:last-child td{border-bottom:0}
.table .num,.table th.num{text-align:right}
.scroll-x{overflow-x:auto}
.empty-state{text-align:center;padding:var(--s7) var(--s4);color:var(--muted)}
.chart{width:100%;height:auto;display:block}
.chart .bar{fill:var(--sand)}
.chart .bar.today{fill:var(--amber)}
.chart g.col:hover .bar{fill:#F7EEDD}
.chart .grid{stroke:rgba(234,220,194,.1);stroke-width:1}
.chart text{fill:var(--muted);font:11.5px var(--f-ui)}
/* The chart is drawn 760 units wide and scaled to fit; on a phone its labels are set larger in those units so they
   still read at about 9px. */
@media (max-width:640px){.chart text{font-size:22px}}
.chart .hit{fill:transparent}
.feature{position:relative;overflow:hidden;border-radius:var(--r-lg);border:1px solid var(--line-2);padding:var(--s6);min-height:240px;display:flex;flex-direction:column;justify-content:flex-end;margin-bottom:var(--s5);isolation:isolate}
.feature > :not(.cine){position:relative;z-index:2}
.feature .cine-shade{background:linear-gradient(90deg,rgba(14,11,9,.95),rgba(14,11,9,.6) 55%,rgba(14,11,9,.2)),linear-gradient(0deg,rgba(14,11,9,.55),rgba(14,11,9,0) 60%)}
.feature h2{font:500 var(--t-2xl)/1.2 var(--f-serif);margin-bottom:var(--s5);max-width:40ch}
.feature .actions{margin-top:0}

/* ---- the footer: a rounded panel clear of the edges, as wide as the page's content, like the bar at the top ---- */
.foot-site{width:calc(100% - 2 * var(--gutter));max-width:calc(var(--max) - 2 * var(--gutter));margin:var(--s3) auto;background:var(--bg-1);border:1px solid var(--line);border-radius:var(--r-lg)}
/* The panel's inner space (--fp) is the same on all four sides: the statement starts as far from the top edge as from the left. */
.foot-site > .container{--fp:clamp(20px,3vw,48px);padding-inline:var(--fp)}
.foot-top{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:var(--s8);padding-block:var(--fp) var(--s7);align-items:end}
.foot-top .statement{font:500 var(--t-3xl)/1.15 var(--f-serif);letter-spacing:-.015em;max-width:22ch}
.foot-top .statement.ta{font-family:var(--f-serif-ta);font-weight:600;line-height:1.4;font-size:clamp(24px,2.4vw,34px)}
.foot-top .actions{justify-content:flex-end;margin:0}
.foot-links{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s6);padding-block:var(--s7);border-top:1px solid var(--line)}
.foot-links h4{font:600 11px/1 var(--f-ui);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:var(--s4)}
.foot-links ul{list-style:none;margin:0;padding:0;display:grid;gap:var(--s3);font-size:var(--t-sm)}
.foot-links a{text-decoration:none;color:var(--text-2)}
.foot-links a:hover{color:var(--text)}
.foot-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--s3) var(--s6);padding-block:var(--s5) var(--fp);border-top:1px solid var(--line);font-size:13px;color:var(--muted)}
/* Narrower: the name gets a row of its own and the three lists sit side by side under it (two across on a phone). */
@media (max-width:860px){.foot-top{grid-template-columns:minmax(0,1fr);gap:var(--s5);padding-block:var(--fp) var(--s6)}.foot-top .actions{justify-content:flex-start}.foot-links{grid-template-columns:repeat(3,minmax(0,1fr))}.foot-links > :first-child{grid-column:1/-1}}
@media (max-width:479px){.foot-links{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s5) var(--s4)}}
