/* Self-hosted fonts: no requests to Google (GDPR-friendly) */
@font-face{font-family:"Tiro Tamil";font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/tiro-tamil-tamil-400-normal.woff2) format("woff2");unicode-range:U+0964-0965,U+0B82-0BFA,U+200C-200D,U+20B9,U+25CC}
@font-face{font-family:"Tiro Tamil";font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/tiro-tamil-latin-400-normal.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+20AC,U+2122,U+2212}
@font-face{font-family:"Tiro Tamil";font-style:italic;font-weight:400;font-display:swap;src:url(/assets/fonts/tiro-tamil-latin-400-italic.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+2000-206F,U+20AC}
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/ibm-plex-sans-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/ibm-plex-sans-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/ibm-plex-sans-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/ibm-plex-mono-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/ibm-plex-mono-latin-500-normal.woff2) format("woff2")}

:root{
  --leaf:#EFE4CC;      /* palm-leaf ground */
  --leaf-2:#F7EEDA;    /* lighter leaf */
  --paper:#FBF6EA;
  --ink:#1F1A33;
  --ink-2:#2A2338;
  --text-2:#3A3245;
  --muted:#5A4E3E;
  --line:#D9C9A6;
  --indigo:#283371;
  --turmeric:#D99A0B;
  --turmeric-soft:#F3E0B0;
  --kumkum:#A8321F;
  --serif:"Tiro Tamil",Georgia,serif;
  --sans:"IBM Plex Sans",system-ui,sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,monospace;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--leaf);color:var(--ink);font-family:var(--sans);font-size:17px;line-height:1.6;-webkit-text-size-adjust:100%}
a{color:var(--kumkum)}a:hover{color:var(--ink)}
:focus-visible{outline:3px solid var(--turmeric);outline-offset:2px}
img,svg{max-width:100%}
.ta{font-family:var(--serif)}
.wrap{max-width:1180px;margin:0 auto;padding-left:24px;padding-right:24px}
.skip{position:absolute;left:-9999px}.skip:focus{left:16px;top:16px;background:var(--paper);padding:10px 14px;z-index:10}

/* header */
.site-head{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;padding-top:20px;padding-bottom:20px}
.brand{display:flex;align-items:baseline;gap:10px;text-decoration:none;color:var(--ink)}
.brand .mark{font-family:var(--serif);font-size:26px;color:var(--kumkum)}
.brand .word{font-family:var(--serif);font-size:24px}
.lang{display:flex;gap:4px;font-family:var(--mono);font-size:14px}
.lang a{padding:10px 12px;text-decoration:none;color:var(--muted);min-height:44px;display:inline-flex;align-items:center}
.lang a[aria-current]{color:var(--ink);font-weight:500;border-bottom:2px solid var(--kumkum)}

/* hero */
.hero{display:flex;flex-wrap:wrap;gap:56px;align-items:center;padding-top:32px;padding-bottom:80px}
.hero-text{flex:999 1 500px;min-width:0}
.hero-ta{margin:0;font-family:var(--serif);font-size:40px;line-height:1.2;color:var(--kumkum)}
.eyebrow{margin:6px 0 22px;font-family:var(--mono);font-size:14px;color:var(--muted);letter-spacing:.04em;text-transform:uppercase}
h1{margin:0;font-family:var(--serif);font-weight:400;font-size:clamp(44px,6.4vw,92px);line-height:1.02;letter-spacing:-.01em}
h1 em{color:var(--indigo)}
.lede{margin:28px 0 0;max-width:580px;font-size:20px;line-height:1.55;color:var(--text-2)}
.ctas{margin-top:36px;display:flex;gap:12px;flex-wrap:wrap}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 26px;border-radius:6px;text-decoration:none;font:inherit;font-weight:600;cursor:pointer;border:1.5px solid var(--ink)}
.btn-dark{background:var(--ink);color:var(--paper)}.btn-dark:hover{background:var(--indigo);color:var(--paper);border-color:var(--indigo)}
.btn-line{background:transparent;color:var(--ink);font-weight:500}.btn-line:hover{background:var(--leaf-2);color:var(--ink)}
.btn-gold{background:var(--turmeric);color:var(--ink);border-color:var(--turmeric)}.btn-gold:hover{background:#C88D08}
.btn[disabled]{opacity:.6;cursor:wait}

/* rasi chart counter */
.slots{flex:1 1 340px;min-width:0;max-width:460px}
.rasi{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(4,minmax(0,1fr));gap:1.5px;background:var(--ink);border:1.5px solid var(--ink);aspect-ratio:1/1;font-family:var(--serif);font-size:13px;color:var(--muted)}
.rasi>span{background:var(--leaf-2);padding:6px 8px;overflow:hidden;white-space:nowrap}
.rasi>.long{font-size:.82em;letter-spacing:-.01em}
.rasi .center{grid-column:2/4;grid-row:2/4;background:var(--paper);padding:12px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;font-family:var(--sans);color:var(--ink)}
.center .label{margin:0;font-family:var(--mono);font-size:12px;color:var(--muted);letter-spacing:.06em;text-transform:uppercase}
.center .num{margin:4px 0 0;font-family:var(--serif);font-size:clamp(44px,9vw,64px);line-height:1}
.center .of{margin:2px 0 0;font-size:15px}
.bar{margin-top:12px;width:80%;height:8px;border-radius:999px;background:#E4D6B6;overflow:hidden}
.bar>i{display:block;height:100%;width:0;background:var(--turmeric);border-radius:999px;transition:width .6s ease}
.slots .note{margin:16px 0 0;font-size:15px;line-height:1.55;color:var(--text-2)}
.slots .small{margin:6px 0 0;font-size:13px;color:var(--muted)}
@media (max-width:420px){.rasi{font-size:11px}.rasi>span{padding:4px 4px}.rasi>.long{font-size:.78em}}

/* kolam divider */
.kolam{display:block;width:100%;height:28px}

/* sections */
.band{background:var(--leaf-2)}
.section{display:flex;flex-wrap:wrap;gap:56px;padding-top:96px;padding-bottom:96px}
.section-head{flex:1 1 280px;min-width:0}
.section-body{flex:999 1 560px;min-width:0}
.num-label{margin:0;font-family:var(--mono);font-size:14px;color:var(--muted);letter-spacing:.04em;text-transform:uppercase}
.num-label .ta{font-size:20px;color:var(--kumkum);text-transform:none}
h2{margin:12px 0 0;font-family:var(--serif);font-weight:400;font-size:clamp(32px,3.8vw,52px);line-height:1.1}
.section-head p{margin:20px 0 0;color:var(--text-2)}
.story{max-width:680px;font-size:19px;line-height:1.7;color:var(--ink-2);display:flex;flex-direction:column;gap:20px}
.story p{margin:0}
.story .closing{font-family:var(--serif);font-size:24px;line-height:1.45;color:var(--indigo)}

/* sample reading */
.card{background:var(--paper);border:1.5px solid var(--ink);border-radius:6px;overflow:hidden}
.card-head{padding:14px 28px;background:var(--indigo);color:var(--paper);display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-family:var(--mono);font-size:13px;letter-spacing:.04em}
.card-body{padding:28px;display:flex;flex-direction:column;gap:24px}
.chart-row{display:flex;flex-wrap:wrap;gap:24px;align-items:center}
.mini{flex:none;width:168px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(4,minmax(0,1fr));gap:1px;background:var(--ink);border:1px solid var(--ink);aspect-ratio:1/1;font-family:var(--serif);font-size:12px}
.mini>span{background:var(--leaf-2)}
.mini .moon{background:var(--turmeric);display:flex;align-items:center;justify-content:center;color:var(--ink)}
.mini .c{grid-column:2/4;grid-row:2/4;background:var(--paper);display:flex;align-items:center;justify-content:center;font-size:15px;color:var(--kumkum)}
.facts{flex:1 1 240px;min-width:0;margin:0;display:grid;gap:10px}
.facts>div{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);padding-bottom:8px}
.facts>div:last-child{border-bottom:0;padding-bottom:0}
.facts dt{font-family:var(--mono);font-size:13px;color:var(--muted)}
.facts dd{margin:0;font-weight:600;text-align:right}
.facts dd .ta{font-weight:400}
h3{margin:0;font-size:17px;font-weight:600}
.card-body p{margin:6px 0 0;color:var(--text-2)}
.nudge{background:var(--turmeric-soft);border-radius:6px;padding:18px 20px}
.nudge p{color:var(--ink-2)}
.card-body .honest{margin:0;font-size:15px;color:var(--muted)}

/* method */
.dark{background:var(--ink);color:#F3E9D2}
.dark .num-label{color:#C9BDA4}.dark .num-label .ta{color:var(--turmeric)}
.dark h2{max-width:760px}
.cols{margin-top:48px;display:flex;flex-wrap:wrap;gap:20px}
.col{flex:1 1 300px;min-width:0;border:1.5px solid #4A4270;border-radius:6px;padding:24px}
.col .k{margin:0;font-family:var(--mono);font-size:13px;color:var(--turmeric);letter-spacing:.04em;text-transform:uppercase}
.col p,.col ul{margin:10px 0 0;color:#E2D8C2}.col ul{padding-left:20px}
.dark a{color:var(--turmeric)}.dark a:hover{color:#F3E9D2}

/* form */
.aside-box{margin-top:28px;background:var(--leaf-2);border:1px solid var(--line);border-radius:6px;padding:20px}
.aside-box h3{font-size:16px}.aside-box p{margin:6px 0 0;font-size:15px;color:var(--text-2)}
.form-card{background:var(--paper);border:1.5px solid var(--ink);border-radius:6px;padding:32px}
@media (max-width:520px){.form-card{padding:22px}.card-body{padding:20px}.card-head{padding:12px 20px}}
form{display:flex;flex-direction:column;gap:20px}
.row{display:flex;flex-wrap:wrap;gap:16px}
.field{flex:1 1 220px;min-width:0;display:flex;flex-direction:column;gap:6px}
.field.wide{flex:2 1 260px}.field.narrow{flex:1 1 160px}
label,legend{font-weight:500;font-size:15px}
.opt{font-weight:400;color:var(--muted)}
input,select,textarea{font:inherit;font-size:16px;color:var(--ink);background:#FFFDF7;border:1.5px solid #B9A98A;border-radius:8px;padding:12px 14px;width:100%;min-height:48px}
input:focus,select:focus,textarea:focus{outline:3px solid var(--turmeric);outline-offset:1px;border-color:var(--ink)}
input[type=radio],input[type=checkbox]{width:20px;height:20px;min-height:20px;padding:0;margin:0;accent-color:var(--kumkum);flex:none}
fieldset{border:0;margin:0;padding:0}
legend{padding:0;margin-bottom:8px}
.radios{display:flex;flex-wrap:wrap;gap:4px 20px}
.radios label{display:flex;align-items:center;gap:8px;min-height:44px;font-weight:400;font-size:16px}
.hint{margin:4px 0 0;font-size:14px;color:var(--muted)}
.consent{display:flex;align-items:flex-start;gap:10px;font-weight:400;font-size:15px;color:var(--text-2)}
.consent input{margin-top:3px}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-error{margin:0;padding:12px 14px;border-radius:6px;background:#F6DCD5;color:#7A2414;font-size:15px}
.form-state{display:flex;flex-direction:column;gap:14px;padding:16px 0}
.form-state .ta{margin:0;font-size:34px;color:var(--kumkum)}
.form-state h3{font-family:var(--serif);font-weight:400;font-size:30px;line-height:1.15}
.form-state p{margin:0;color:var(--text-2)}
[hidden]{display:none!important}

/* footer & simple pages */
.site-foot{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;padding-top:32px;padding-bottom:40px;font-size:15px;color:var(--text-2)}
.site-foot nav{display:flex;gap:20px;flex-wrap:wrap}
.site-foot a{min-height:44px;display:inline-flex;align-items:center}
.page{max-width:760px;margin:0 auto;padding:48px 24px 96px}
.page h1{font-size:clamp(40px,6vw,64px)}
.page h2{font-size:28px;margin-top:40px}
.page p,.page li{color:var(--ink-2)}
.todo{background:var(--turmeric-soft);padding:1px 6px;border-radius:4px;font-family:var(--mono);font-size:.9em}
.notice{background:var(--leaf-2);border:1px solid var(--line);border-radius:6px;padding:16px 20px;margin-top:24px;font-size:15px}
