@font-face{font-family:Geist;font-style:normal;font-display:swap;font-weight:400;src:url(../media/geist-cyrillic-ext-400-normal.3htarsyq29jlx.woff2)format("woff2"),url(../media/geist-cyrillic-ext-400-normal.1w9bw1yei4m6f.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist;font-style:normal;font-display:swap;font-weight:400;src:url(../media/geist-cyrillic-400-normal.0qeecs06bobtl.woff2)format("woff2"),url(../media/geist-cyrillic-400-normal.36-ft1d9mkfxd.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-display:swap;font-weight:400;src:url(../media/geist-vietnamese-400-normal.30u03karnftjq.woff2)format("woff2"),url(../media/geist-vietnamese-400-normal.2zz_rrjxzoe2k.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist;font-style:normal;font-display:swap;font-weight:400;src:url(../media/geist-latin-ext-400-normal.2pyggfpy7n-df.woff2)format("woff2"),url(../media/geist-latin-ext-400-normal.3xb2cemt7trui.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist;font-style:normal;font-display:swap;font-weight:400;src:url(../media/geist-latin-400-normal.383tfv-wiktxb.woff2)format("woff2"),url(../media/geist-latin-400-normal.327ncm5fbvt4e.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Geist;font-style:normal;font-display:swap;font-weight:500;src:url(../media/geist-cyrillic-ext-500-normal.41czpm314xj5n.woff2)format("woff2"),url(../media/geist-cyrillic-ext-500-normal.3gc6aqfnwzksj.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist;font-style:normal;font-display:swap;font-weight:500;src:url(../media/geist-cyrillic-500-normal.2h0a3n_o6n601.woff2)format("woff2"),url(../media/geist-cyrillic-500-normal.23d3m6jhxju3q.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-display:swap;font-weight:500;src:url(../media/geist-vietnamese-500-normal.0j2idug5p5y76.woff2)format("woff2"),url(../media/geist-vietnamese-500-normal.2un-vg8xt3lb2.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist;font-style:normal;font-display:swap;font-weight:500;src:url(../media/geist-latin-ext-500-normal.0i83ozvjcqk-8.woff2)format("woff2"),url(../media/geist-latin-ext-500-normal.2ky076r1h6f2m.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist;font-style:normal;font-display:swap;font-weight:500;src:url(../media/geist-latin-500-normal.38l4-nuansk4e.woff2)format("woff2"),url(../media/geist-latin-500-normal.20elz_2fqf648.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Geist;font-style:normal;font-display:swap;font-weight:600;src:url(../media/geist-cyrillic-ext-600-normal.15p0ugk29jtyi.woff2)format("woff2"),url(../media/geist-cyrillic-ext-600-normal.10nt_ektsss_y.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist;font-style:normal;font-display:swap;font-weight:600;src:url(../media/geist-cyrillic-600-normal.3jciosfhm4bxc.woff2)format("woff2"),url(../media/geist-cyrillic-600-normal.2s39fwu981b6w.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-display:swap;font-weight:600;src:url(../media/geist-vietnamese-600-normal.36n-r-dh8vrid.woff2)format("woff2"),url(../media/geist-vietnamese-600-normal.3t4n-1lyq3bds.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist;font-style:normal;font-display:swap;font-weight:600;src:url(../media/geist-latin-ext-600-normal.1qve9nom2mhxd.woff2)format("woff2"),url(../media/geist-latin-ext-600-normal.0-2pq1w-b49q5.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist;font-style:normal;font-display:swap;font-weight:600;src:url(../media/geist-latin-600-normal.27szznjxpbeif.woff2)format("woff2"),url(../media/geist-latin-600-normal.3erimm-tvqxp2.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Geist;font-style:normal;font-display:swap;font-weight:700;src:url(../media/geist-cyrillic-ext-700-normal.3i972ercqqndw.woff2)format("woff2"),url(../media/geist-cyrillic-ext-700-normal.3ox048atqmoix.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist;font-style:normal;font-display:swap;font-weight:700;src:url(../media/geist-cyrillic-700-normal.0z1jfzh03k228.woff2)format("woff2"),url(../media/geist-cyrillic-700-normal.0f552sahb8wlf.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-display:swap;font-weight:700;src:url(../media/geist-vietnamese-700-normal.19wih7kh89wbn.woff2)format("woff2"),url(../media/geist-vietnamese-700-normal.08--_xowsj0gp.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist;font-style:normal;font-display:swap;font-weight:700;src:url(../media/geist-latin-ext-700-normal.3t-tyo-e5sj45.woff2)format("woff2"),url(../media/geist-latin-ext-700-normal.3s7snf9z4aa7s.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist;font-style:normal;font-display:swap;font-weight:700;src:url(../media/geist-latin-700-normal.3ulpc8k-3xit-.woff2)format("woff2"),url(../media/geist-latin-700-normal.0txh5wsbu7c-s.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:400;src:url(../media/geist-mono-cyrillic-ext-400-normal.145ihblkbo6o9.woff2)format("woff2"),url(../media/geist-mono-cyrillic-ext-400-normal.3233pyl73nxx-.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:400;src:url(../media/geist-mono-cyrillic-400-normal.2ev5bj1sv8qdc.woff2)format("woff2"),url(../media/geist-mono-cyrillic-400-normal.0kk3_ldj-toj8.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:400;src:url(../media/geist-mono-symbols2-400-normal.36ocqp66t8jgf.woff2)format("woff2"),url(../media/geist-mono-symbols2-400-normal.2nikjn82yex6v.woff)format("woff");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:400;src:url(../media/geist-mono-vietnamese-400-normal.05z6vn9wvm9ol.woff2)format("woff2"),url(../media/geist-mono-vietnamese-400-normal.0asqlvjlpgjcr.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:400;src:url(../media/geist-mono-latin-ext-400-normal.233drj6nve_th.woff2)format("woff2"),url(../media/geist-mono-latin-ext-400-normal.2uuk7bqocxpqk.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:400;src:url(../media/geist-mono-latin-400-normal.3438je0ly6xo6.woff2)format("woff2"),url(../media/geist-mono-latin-400-normal.0xg-b9nknoyfm.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:500;src:url(../media/geist-mono-cyrillic-ext-500-normal.0vcnldz_sqo8t.woff2)format("woff2"),url(../media/geist-mono-cyrillic-ext-500-normal.1-n21zxqdudi6.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:500;src:url(../media/geist-mono-cyrillic-500-normal.24au7ho8cigf0.woff2)format("woff2"),url(../media/geist-mono-cyrillic-500-normal.321nyw3fe--lv.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:500;src:url(../media/geist-mono-symbols2-500-normal.2dp_b1wp1a1k9.woff2)format("woff2"),url(../media/geist-mono-symbols2-500-normal.2txnfyg4vwq4r.woff)format("woff");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:500;src:url(../media/geist-mono-vietnamese-500-normal.249beu1dlztaw.woff2)format("woff2"),url(../media/geist-mono-vietnamese-500-normal.0hqf1o9ic5rov.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:500;src:url(../media/geist-mono-latin-ext-500-normal.03-90kd5d0giw.woff2)format("woff2"),url(../media/geist-mono-latin-ext-500-normal.2wq4s5u5cm2e1.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:500;src:url(../media/geist-mono-latin-500-normal.1e2gwajm-3ezu.woff2)format("woff2"),url(../media/geist-mono-latin-500-normal.0x7c7aui0nvmz.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Fleur De Leah;font-style:normal;font-display:swap;font-weight:400;src:url(../media/fleur-de-leah-vietnamese-400-normal.274xvby_lzkqd.woff2)format("woff2"),url(../media/fleur-de-leah-vietnamese-400-normal.1j-7pr-_61mwg.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fleur De Leah;font-style:normal;font-display:swap;font-weight:400;src:url(../media/fleur-de-leah-latin-ext-400-normal.0e4ls0sacvl5f.woff2)format("woff2"),url(../media/fleur-de-leah-latin-ext-400-normal.0kg-5tlvvydiw.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fleur De Leah;font-style:normal;font-display:swap;font-weight:400;src:url(../media/fleur-de-leah-latin-400-normal.2uehxevwprept.woff2)format("woff2"),url(../media/fleur-de-leah-latin-400-normal.3vsdzd-uzfl-5.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
:root{--bg:#fafafa;--surface:#fff;--border:#e8e8e8;--border-sub:#f0f0f0;--text-1:#111;--text-2:#555;--text-3:#999;--positive:#2d7a5e;--negative:#b04020;--accent-blue:#2563eb;--accent-blue-bg:#eff4ff;--accent-amber:#b45309;--accent-amber-bg:#fdf6ec;--accent-green:#2d7a5e;--accent-green-bg:#eef6f1;--accent-rose:#b04020;--accent-rose-bg:#fbefe9;--accent-violet:#6d28d9;--accent-violet-bg:#f4effd;--font-sans:"Geist", -apple-system, BlinkMacSystemFont, sans-serif;--font-mono:"Geist Mono", ui-monospace, "SF Mono", Menlo, monospace;--font-display:"Fleur De Leah", "Snell Roundhand", cursive;--radius:8px;--radius-sm:6px;--header-h:52px;--kerala-cream:#faf6ef;--kerala-gold:#c4922a;--kerala-gold-light:#e8c56d;--kerala-teal:#1a5c54;--kerala-teal-deep:#0e3d38;--kerala-maroon:#7a2830;--kerala-palm:#2d5a3d;--input-inset:inset 0 1px 4px #0e3d3814;--input-inset-focus:inset 0 0 0 1px color-mix(in srgb, var(--kerala-teal) 10%, transparent), inset 0 2px 10px color-mix(in srgb, var(--kerala-teal) 12%, transparent), var(--input-inset);--glow-gold:0 0 10px #e8c56d8c, 0 0 22px #c4922a47;--glow-gold-soft:0 0 6px #e8c56d59;--glow-teal:0 0 10px #1a5c5473, 0 0 22px #0e3d3838;--glow-teal-soft:0 0 6px #1a5c544d}*{box-sizing:border-box;margin:0;padding:0}html,body{max-width:100vw}html{-webkit-text-size-adjust:100%;height:100%}body{min-height:100%;color:var(--text-1);background:var(--bg);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:14px;line-height:1.5}a{color:inherit;text-decoration:none}button{font-family:inherit;font-size:inherit;cursor:pointer}input,select,textarea{font-family:inherit;font-size:14px}input:not([type=hidden]):not([type=file]):not([type=checkbox]):not([type=radio]),select,textarea{box-shadow:var(--input-inset);outline:none;transition:border-color .3s,box-shadow .4s}input:not([type=hidden]):not([type=file]):not([type=checkbox]):not([type=radio]):focus:not(.editor-input),select:focus:not(.editor-input),textarea:focus:not(.editor-input){border-color:var(--kerala-teal);box-shadow:var(--input-inset-focus)}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.label{text-transform:uppercase;letter-spacing:.1em;color:var(--text-3);font-size:10px;font-weight:500}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.pos{color:var(--positive)}.neg{color:var(--negative)}.badge{border:1px solid #0000;border-radius:999px;align-items:center;gap:4px;padding:1px 7px;font-size:11px;font-weight:500;line-height:1.6;display:inline-flex}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}:focus-visible{outline:2px solid var(--accent-blue);outline-offset:1px}.app-shell{flex-direction:column;height:100dvh;display:flex}.app-main{-webkit-overflow-scrolling:touch;min-height:0;padding-top:var(--header-h);flex:1;transition:padding-top .35s cubic-bezier(.22,1,.36,1);overflow-y:auto}.app-main.is-header-collapsed{padding-top:0}.app-main:has(.map-view){overflow:hidden}.app-header{height:var(--header-h);border-bottom:1px solid var(--border);background:var(--surface);z-index:20;pointer-events:auto;flex-shrink:0;align-items:center;gap:16px;padding:0 14px;display:flex;position:fixed;top:0;left:0;right:0}.app-header[aria-hidden=true]{pointer-events:none}.app-header-logo{letter-spacing:-.01em;color:var(--kerala-gold);border-radius:var(--radius-sm);font-size:15px;font-weight:600;transition:color .2s,text-shadow .25s}.app-header-logo:hover{color:var(--kerala-gold-light);text-shadow:var(--glow-gold-soft);animation:1.4s ease-in-out infinite alternate header-glow-gold}.app-header-nav{gap:2px;display:flex}.app-header-nav-link{border-radius:var(--radius-sm);color:var(--kerala-teal);background:0 0;padding:5px 10px;font-size:13px;font-weight:500;transition:color .2s,text-shadow .25s,background .15s}.app-header-nav-link:hover{color:var(--kerala-teal-deep);text-shadow:var(--glow-teal-soft);animation:1.4s ease-in-out infinite alternate header-glow-teal}.app-header-nav-link.is-active{color:var(--kerala-teal-deep);background:var(--accent-green-bg)}.app-header-utils{align-items:center;gap:8px;margin-left:auto;display:flex}.app-header-util-link{text-transform:uppercase;letter-spacing:.1em;color:var(--kerala-gold);border-radius:var(--radius-sm);background:0 0;border:none;padding:5px 8px;font-size:10px;font-weight:500;transition:color .2s,text-shadow .25s,box-shadow .25s}.app-header-util-link:hover{color:var(--kerala-gold-light);text-shadow:var(--glow-gold-soft);animation:1.4s ease-in-out infinite alternate header-glow-gold}.app-header-signout{border:1px solid #c4922a59}.app-header-signout:hover{box-shadow:0 0 14px #c4922a38}@keyframes header-glow-gold{0%{text-shadow:var(--glow-gold-soft)}to{text-shadow:var(--glow-gold)}}@keyframes header-glow-teal{0%{text-shadow:var(--glow-teal-soft)}to{text-shadow:var(--glow-teal)}}@media (prefers-reduced-motion:reduce){.app-header-logo:hover,.app-header-nav-link:hover,.app-header-util-link:hover,.app-header-menu-logo:hover,.app-header-menu-link:hover,.app-header-menu-util:hover{text-shadow:none;animation:none}.app-header-logo:hover{text-shadow:var(--glow-gold-soft)}.app-header-nav-link:hover,.app-header-menu-link:hover{text-shadow:var(--glow-teal-soft)}.app-header-util-link:hover,.app-header-menu-util:hover{text-shadow:var(--glow-gold-soft)}.app-header-fab:hover:not(.is-open) .app-header-fab-icon span,.app-header-mobile-trigger:hover:not(.is-open) .app-header-fab-icon span,.calendar-scroll-top-fab:hover:not(.is-tracing):not(:disabled) .calendar-scroll-top-icon{animation:none}}.app-header-mobile-trigger{display:none}.app-fab{z-index:40;cursor:pointer;background:var(--kerala-teal-deep);width:48px;height:48px;color:var(--kerala-gold-light);-webkit-tap-highlight-color:transparent;border:none;border-radius:50%;place-items:center;transition:transform .32s cubic-bezier(.22,1,.36,1),background .32s,box-shadow .32s,color .25s;display:grid;box-shadow:0 8px 28px #0e3d3861,0 3px 10px #0e3d3838,0 0 0 1px #e8c56d2e}.app-fab:disabled{cursor:default}.app-fab:hover:not(.is-open):not(.is-tracing):not(:disabled){box-shadow:0 14px 40px #0e3d3885,0 6px 18px #0e3d3857,0 0 22px #e8c56d52}.app-fab.is-tracing{box-shadow:none;color:var(--kerala-teal);background:#0e3d3800}.app-fab .gold-border-trace{width:100%;height:100%;inset:0}.app-header-fab{top:max(12px, env(safe-area-inset-top,0px));right:max(12px, env(safe-area-inset-right,0px));position:fixed}.app-header-fab:hover:not(.is-open) .app-header-fab-icon span{background:var(--kerala-gold-light);animation:1.4s ease-in-out infinite alternate fab-bar-glow-gold;box-shadow:0 0 8px #e8c56d8c,0 0 16px #c4922a52}.app-header-fab.is-open{box-shadow:none;background:#0e3d3800}.calendar-scroll-top-fab{bottom:max(14px, env(safe-area-inset-bottom,0px));left:max(14px, env(safe-area-inset-left,0px));z-index:39;position:fixed}.calendar-scroll-top-icon{z-index:1;width:18px;height:18px;transition:color .25s,filter .32s;position:relative}.calendar-scroll-top-fab:hover:not(.is-tracing):not(:disabled) .calendar-scroll-top-icon{filter:drop-shadow(0 0 6px #e8c56d8c)drop-shadow(0 0 12px #c4922a52);animation:1.4s ease-in-out infinite alternate fab-bar-glow-gold}.app-header-fab-icon{flex-direction:column;justify-content:center;gap:5px;width:20px;height:16px;display:flex}.app-header-fab-icon.is-open{transition:transform .32s cubic-bezier(.22,1,.36,1)}.app-header-fab-icon span{background:var(--kerala-gold-light);transform-origin:50%;border-radius:1px;width:100%;height:2px;transition:transform .32s cubic-bezier(.22,1,.36,1),opacity .24s,background .32s,box-shadow .32s;display:block}.app-header-fab-icon.is-open span{background:var(--kerala-teal);box-shadow:0 0 8px #1a5c5473,0 0 14px #0e3d3847}.app-header-fab-icon.is-open span:first-child{transform:translateY(7px)rotate(45deg)}.app-header-fab-icon.is-open span:nth-child(2){opacity:0;transform:scaleX(0)}.app-header-fab-icon.is-open span:nth-child(3){transform:translateY(-7px)rotate(-45deg)}@keyframes fab-bar-glow-gold{0%{box-shadow:0 0 6px #e8c56d66,0 0 12px #c4922a33}to{box-shadow:0 0 10px #e8c56da6,0 0 20px #c4922a61}}.app-header-menu-backdrop{z-index:38;cursor:default;-webkit-backdrop-filter:blur(4px);background:#0e3d3873;border:none;position:fixed;inset:0}.app-header-menu{top:max(12px, env(safe-area-inset-top,0px));right:max(12px, env(safe-area-inset-right,0px));left:max(12px, env(safe-area-inset-left,0px));z-index:39;border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);flex-direction:column;gap:4px;max-width:320px;margin-left:auto;padding:20px;display:flex;position:fixed;box-shadow:0 16px 48px #0e3d3833}.app-header-menu-logo{color:var(--kerala-gold);border-radius:var(--radius-sm);margin-bottom:8px;font-size:15px;font-weight:600;transition:color .2s,text-shadow .25s}.app-header-menu-logo:hover{color:var(--kerala-gold-light);text-shadow:var(--glow-gold-soft);animation:1.4s ease-in-out infinite alternate header-glow-gold}.app-header-menu-section{flex-direction:column;gap:2px;display:flex}.app-header-menu-link{border-radius:var(--radius-sm);color:var(--kerala-teal);padding:12px 10px;font-size:16px;font-weight:500;transition:color .2s,text-shadow .25s,background .15s}.app-header-menu-link:hover{color:var(--kerala-teal-deep);text-shadow:var(--glow-teal-soft);animation:1.4s ease-in-out infinite alternate header-glow-teal}.app-header-menu-link.is-active{color:var(--kerala-teal-deep);background:var(--accent-green-bg)}.app-header-menu-divider{background:var(--border);height:1px;margin:8px 0}.app-header-menu-utils{flex-direction:column;gap:4px;display:flex}.app-header-menu-util{text-align:left;text-transform:uppercase;letter-spacing:.1em;color:var(--kerala-gold);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;padding:10px;font-size:12px;font-weight:500;transition:color .2s,text-shadow .25s,box-shadow .25s}.app-header-menu-util:hover{color:var(--kerala-gold-light);text-shadow:var(--glow-gold-soft);animation:1.4s ease-in-out infinite alternate header-glow-gold}.app-header-menu-signout{border:1px solid #c4922a59;margin-top:4px}.app-header-menu-signout:hover{box-shadow:0 0 14px #c4922a38}@media (min-width:640px){.app-header-menu{width:min(320px,100vw - 24px);left:auto}}@media (max-width:520px){.app-header-nav{display:none}.app-header-mobile-trigger{border-radius:var(--radius-sm);background:var(--accent-green-bg);cursor:pointer;-webkit-tap-highlight-color:transparent;border:1px solid #1a5c5433;place-items:center;width:36px;height:36px;margin-right:4px;transition:transform .32s cubic-bezier(.22,1,.36,1),background .32s,box-shadow .32s,border-color .32s;display:grid;box-shadow:0 4px 16px #0e3d3833,0 0 0 1px #e8c56d1f}.app-header-mobile-trigger:hover:not(.is-open){box-shadow:0 8px 24px #0e3d3857,0 0 16px #e8c56d38}.app-header-mobile-trigger:hover:not(.is-open) .app-header-fab-icon span{background:var(--kerala-gold-light);animation:1.4s ease-in-out infinite alternate fab-bar-glow-gold;box-shadow:0 0 8px #e8c56d8c,0 0 16px #c4922a52}.app-header-mobile-trigger.is-open{box-shadow:none;background:0 0;border-color:#0000;transform:scale(.82)}.app-header-mobile-trigger .app-header-fab-icon span{background:var(--kerala-gold-light)}.app-header-utils{gap:4px}.app-header-util-link{padding:5px 6px;font-size:9px}}@media (min-width:521px){.app-header-mobile-trigger{display:none}}.person-drawer{background:var(--surface);border-left:1px solid var(--border);z-index:31;will-change:transform;width:min(400px,100%);position:fixed;top:0;bottom:0;right:0}.drawer-row{border-bottom:1px solid var(--border-sub);border-radius:var(--radius-sm);justify-content:space-between;align-items:baseline;gap:12px;margin:0 -10px;padding:8px 10px;display:flex}.drawer-row-missing{background:var(--accent-amber-bg);border:1px solid #b4530938}.drawer-row-label{color:var(--text-2);flex-shrink:0;font-size:13px}.drawer-row-missing .drawer-row-label{color:var(--accent-amber);font-weight:500}.drawer-row-value{text-align:right;font-size:13px}.drawer-row-value-missing{color:var(--accent-amber);font-family:var(--font-sans);font-size:12px;font-style:italic;font-weight:500}.drawer-row-extra{color:var(--text-3);margin-left:8px}.drawer-person-name{letter-spacing:-.01em;font-size:25px;font-weight:600}.person-name{flex-direction:column;gap:2px;min-width:0;display:flex}.person-name-first,.person-name-last{line-height:1.2;display:block}.person-name--drawer .person-name-first,.person-name--drawer .person-name-last{letter-spacing:-.01em;font-size:25px;font-weight:600}.person-name--drawer .person-name-last{color:var(--kerala-teal)}.person-name--founder .person-name-first,.person-name--founder .person-name-last{font-size:16px;font-weight:600;transition:color .52s}.person-name--founder .person-name-last{color:var(--kerala-teal)}.home-founder-card.is-tracing .person-name-first,.home-founder-card.is-tracing .person-name-last{color:var(--kerala-gold)}.person-name--row .person-name-first,.person-name--row .person-name-last{color:var(--text-1);font-size:14px;font-weight:400;transition:color .52s}.person-name--inline .person-name-inline{color:var(--text-1);white-space:nowrap;text-overflow:ellipsis;font-size:14px;transition:color .52s;overflow:hidden}.drawer-rel-row.is-tracing .person-name-inline,.drawer-rel-row.is-tracing .person-name-first,.drawer-rel-row.is-tracing .person-name-last{color:var(--kerala-gold)}.person-name--tree .person-name-first{white-space:nowrap;text-overflow:ellipsis;font-size:12.5px;font-weight:500;overflow:hidden}.person-name--tree .person-name-last{color:var(--kerala-teal);white-space:nowrap;text-overflow:ellipsis;font-size:10px;font-weight:500;overflow:hidden}.person-name-editor{flex-direction:column;gap:6px;width:100%;display:flex}.person-name-editor-first{letter-spacing:-.01em;font-size:18px;font-weight:600}.person-name-editor-last{letter-spacing:-.01em;color:var(--kerala-teal);font-size:18px;font-weight:600}.drawer-section-label{text-transform:uppercase;letter-spacing:.1em;color:var(--kerala-teal);font-size:10px;font-weight:500}.drawer-action-btn{cursor:pointer;text-transform:uppercase;letter-spacing:.1em;color:var(--kerala-teal);background:0 0;border:none;padding:4px 6px;font-size:10px;font-weight:500;transition:color .15s;position:relative}.drawer-action-btn:hover:not(:disabled){color:var(--kerala-teal-deep)}.drawer-action-btn:disabled{cursor:default}.drawer-action-btn-label{display:inline-block;position:relative}.drawer-action-btn-label:after{content:"";background:var(--kerala-gold);transform-origin:0;opacity:0;width:100%;height:1.5px;position:absolute;bottom:-2px;left:0;transform:scaleX(0)}.drawer-action-btn.is-tracing{color:var(--kerala-gold);transition:color .52s}.drawer-action-btn.is-tracing .drawer-action-btn-label:after{animation:.52s forwards drawer-action-underline,.28s .48s forwards drawer-action-fade}.drawer-action-btn.is-tracing .drawer-action-btn-label{animation:.28s .48s forwards drawer-action-fade}@keyframes drawer-action-underline{0%{opacity:1;transform:scaleX(0)}to{opacity:1;transform:scaleX(1)}}@keyframes drawer-action-fade{to{opacity:0}}.drawer-action-btn-spaced{margin-top:2px}.editor-section-label{text-transform:uppercase;letter-spacing:.1em;color:var(--kerala-teal);font-size:10px;font-weight:500}.editor-save-btn{border-radius:var(--radius-sm);border:1px solid var(--kerala-gold);background:var(--kerala-gold);width:100%;color:var(--kerala-cream);cursor:pointer;margin-top:18px;padding:10px 12px;font-size:14px;font-weight:500;transition:background-color .15s,border-color .15s}.editor-save-btn:hover:not(:disabled){background:color-mix(in srgb, var(--kerala-gold) 88%, var(--kerala-teal-deep));border-color:color-mix(in srgb, var(--kerala-gold) 88%, var(--kerala-teal-deep))}.editor-save-btn:disabled{opacity:.6;cursor:default}.editor-input{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);width:100%;padding:8px 10px}.editor-input:focus{border-color:var(--kerala-teal);animation:.4s forwards editor-input-focus}.editor-input:not(:focus){animation:none}@keyframes editor-input-focus{0%{box-shadow:var(--input-inset)}to{box-shadow:var(--input-inset-focus)}}@media (prefers-reduced-motion:reduce){.editor-input:focus{box-shadow:var(--input-inset-focus);animation:none}}.editor-date-header{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.editor-rip-label{text-transform:uppercase;letter-spacing:.1em;color:var(--kerala-teal);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;font-size:10px;font-weight:500;display:inline-flex}.editor-rip-checkbox{width:14px;height:14px;accent-color:var(--kerala-teal);cursor:pointer}.editor-memorial-wrap{margin-top:10px}.editor-memorial-label{margin-bottom:6px}.date-picker-field{position:relative}.date-picker-trigger{text-align:left;cursor:pointer;justify-content:space-between;align-items:center;gap:8px;width:100%;display:flex}.date-picker-trigger.has-value{color:var(--text-1)}.date-picker-placeholder{color:var(--text-3)}.date-picker-trigger-error{border-color:var(--negative)}.date-picker-icon{color:var(--kerala-teal);opacity:.7;font-size:11px}.date-picker-error{margin-top:6px;font-size:12px}.date-picker-popover{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 12px 40px color-mix(in srgb, var(--kerala-teal) 14%, transparent), 0 2px 8px #0000000f;padding:12px}.date-picker-header{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.date-picker-title{color:var(--kerala-teal-deep);letter-spacing:-.01em;font-size:13px;font-weight:600}.date-picker-nav{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);width:28px;height:28px;color:var(--kerala-teal);cursor:pointer;place-items:center;font-size:18px;line-height:1;transition:border-color .15s,background-color .15s,color .15s;display:grid}.date-picker-nav:hover:not(:disabled){border-color:var(--kerala-teal);background:color-mix(in srgb, var(--kerala-teal) 6%, transparent)}.date-picker-nav:disabled{opacity:.35;cursor:default}.date-picker-weekdays{grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:4px;display:grid}.date-picker-weekday{text-align:center;color:var(--text-3);padding:4px 0;font-size:10px;font-weight:500}.date-picker-grid{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.date-picker-day{aspect-ratio:1;border-radius:var(--radius-sm);font-size:13px;font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--text-1);cursor:pointer;background:0 0;border:none;transition:background-color .15s,color .15s,transform .15s}.date-picker-day:not(.empty):not(.disabled):hover{background:color-mix(in srgb, var(--kerala-teal) 9%, transparent);transform:scale(1.06)}.date-picker-day.selected{background:var(--kerala-teal);color:var(--kerala-cream);font-weight:600}.date-picker-day.selected:hover{background:var(--kerala-teal-deep)}.date-picker-day.disabled{color:var(--text-3);opacity:.35;cursor:default}.date-picker-day.empty{cursor:default}.date-picker-footer{border-top:1px solid var(--border-sub);justify-content:space-between;align-items:flex-end;gap:10px;margin-top:12px;padding-top:10px;display:flex}.date-picker-year-label{text-transform:uppercase;letter-spacing:.08em;color:var(--kerala-teal);flex-direction:column;flex:1;gap:4px;font-size:10px;font-weight:500;display:flex}.date-picker-year-input{font-size:13px}.date-picker-clear{text-transform:uppercase;letter-spacing:.08em;color:var(--text-3);cursor:pointer;background:0 0;border:none;padding:6px 4px;font-size:11px;transition:color .15s}.date-picker-clear:hover{color:var(--kerala-teal)}.location-field,.location-field-input-wrap{position:relative}.location-field-input{padding-right:32px}.location-field-input.has-value{color:var(--text-1)}.location-field-clear{color:var(--text-3);cursor:pointer;background:0 0;border:none;padding:2px 4px;font-size:18px;line-height:1;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.location-field-clear:hover{color:var(--kerala-teal)}.location-field-country{color:var(--text-3);margin-top:6px;font-size:11px}.location-field-popover{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 12px 40px color-mix(in srgb, var(--kerala-teal) 14%, transparent), 0 2px 8px #0000000f;max-height:240px;overflow:hidden auto}.location-field-status{color:var(--text-3);margin:0;padding:10px 12px;font-size:12px}.location-field-option{text-align:left;cursor:pointer;width:100%;color:var(--text-1);background:0 0;border:none;padding:10px 12px;font-size:13px;transition:background-color .12s;display:block}.location-field-option:hover,.location-field-option.active{background:color-mix(in srgb, var(--kerala-teal) 9%, transparent)}.location-field-option-label{line-height:1.35;display:block}.drawer-rel-row{text-align:left;border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:none;align-items:center;gap:10px;width:100%;margin:0 -10px;padding:8px 18px 8px 10px;transition:background-color .15s,transform .15s;display:flex;position:relative}.drawer-rel-row:hover:not(:disabled){background-color:color-mix(in srgb, var(--kerala-teal) 9%, transparent);transform:translate(4px)}.drawer-rel-row:active:not(:disabled){transform:translate(2px)scale(.98)}.drawer-rel-row:disabled{cursor:default}.drawer-rel-row-chevron{color:var(--kerala-teal);opacity:.55;flex-shrink:0;margin-left:auto;margin-right:4px;font-size:14px;transition:opacity .52s,transform .52s,color .52s}.drawer-rel-row:hover:not(:disabled) .drawer-rel-row-chevron{opacity:1;transform:translate(2px)}.drawer-rel-row.is-tracing .drawer-rel-row-chevron{color:var(--kerala-gold);opacity:1;transform:translate(3px)}.drawer-rel-row .gold-border-trace{width:100%;height:100%;inset:0}.gold-border-trace{pointer-events:none;width:calc(100% + 2px);height:calc(100% + 2px);position:absolute;inset:-1px;overflow:visible}.gold-border-trace-path{fill:none;stroke-width:2px;vector-effect:non-scaling-stroke;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:100 100;stroke-dashoffset:100px;animation:gold-border-trace var(--gold-trace-draw,.52s) ease-out forwards, gold-border-trace-fade var(--gold-trace-fade-dur,.28s) ease var(--gold-trace-fade-delay,.52s) forwards}.gold-border-trace-path--gold{stroke:var(--kerala-gold)}.gold-border-trace-path--white{stroke:var(--kerala-cream)}.gold-border-trace-path--teal{stroke:var(--kerala-teal)}@keyframes gold-border-trace{to{stroke-dashoffset:0}}@keyframes gold-border-trace-fade{to{opacity:0}}.celebration-overlay{z-index:50;pointer-events:none;position:fixed;inset:0;overflow:hidden}.celebration-ribbons{position:absolute;inset:0}.celebration-ribbon{background:repeating-linear-gradient(90deg, var(--kerala-teal) 0 14px, var(--kerala-gold) 14px 28px);position:absolute;box-shadow:0 2px 12px #0e3d3833}.celebration-ribbon-top{transform-origin:top;height:10px;top:0;left:0;right:0}.celebration-ribbon-bottom{transform-origin:bottom;height:10px;bottom:0;left:0;right:0}.celebration-ribbon-left{background:repeating-linear-gradient(180deg, var(--kerala-teal) 0 14px, var(--kerala-gold) 14px 28px);transform-origin:0;width:10px;top:0;bottom:0;left:0}.celebration-ribbon-right{background:repeating-linear-gradient(180deg, var(--kerala-teal) 0 14px, var(--kerala-gold) 14px 28px);transform-origin:100%;width:10px;top:0;bottom:0;right:0}.celebration-ribbon-corner{border:3px solid var(--kerala-gold);border-radius:4px;width:28px;height:28px;position:absolute}.celebration-ribbon-corner-tl{background:linear-gradient(135deg, var(--kerala-teal) 50%, transparent 50%);border-bottom:none;border-right:none;top:6px;left:6px}.celebration-ribbon-corner-tr{background:linear-gradient(225deg, var(--kerala-teal) 50%, transparent 50%);border-bottom:none;border-left:none;top:6px;right:6px}.celebration-ribbon-corner-bl{background:linear-gradient(45deg, var(--kerala-teal) 50%, transparent 50%);border-top:none;border-right:none;bottom:6px;left:6px}.celebration-ribbon-corner-br{background:linear-gradient(315deg, var(--kerala-teal) 50%, transparent 50%);border-top:none;border-left:none;bottom:6px;right:6px}.celebration-confetti{position:absolute;inset:0;overflow:hidden}.celebration-confetti-piece{will-change:transform, opacity;border-radius:1px;position:absolute;top:-12px}.celebration-confetti-piece.is-round{border-radius:50%}.celebration-toast-wrap{pointer-events:none;place-items:center;display:grid;position:absolute;inset:0}.celebration-toast{letter-spacing:.02em;color:var(--kerala-teal-deep);white-space:nowrap;text-align:center;background:#faf6eff0;border:1px solid #c4922a59;border-radius:999px;padding:10px 20px;font-size:15px;font-weight:600;box-shadow:0 4px 20px #0e3d381f}@media (prefers-reduced-motion:reduce){.celebration-overlay{display:none}}.react-flow__attribution{display:none}.react-flow__edge-path{stroke:var(--border);stroke-width:1.5px}.react-flow__handle{opacity:0}.tree-view-shell{flex-direction:column;height:100%;display:flex}.tree-view-shell .react-flow{flex:1;min-height:0}.tree-view-shell .react-flow__edges{z-index:0}.tree-view-shell .react-flow__node{z-index:1;transition:transform .58s cubic-bezier(.22,1,.36,1)}.tree-flow-controls{border:1px solid color-mix(in srgb, var(--kerala-teal) 30%, var(--border));border-radius:var(--radius-sm);background:var(--surface);flex-direction:column;margin:0 14px 14px 0;display:flex;overflow:hidden;box-shadow:0 2px 10px #0e3d3814,0 0 0 1px #e8c56d14}.tree-flow-ctrl-btn{border:none;border-bottom:1px solid var(--border-sub);background:color-mix(in srgb, var(--kerala-teal) 6%, var(--surface));width:34px;height:34px;color:var(--kerala-teal-deep);cursor:pointer;-webkit-tap-highlight-color:transparent;place-items:center;padding:0;transition:color .2s,background .2s,box-shadow .25s,transform .12s;display:grid;position:relative}.tree-flow-ctrl-btn:last-child{border-bottom:none}.tree-flow-ctrl-btn-icon{z-index:1;place-items:center;display:grid;position:relative}.tree-flow-ctrl-btn svg{stroke:currentColor;fill:none;width:14px;height:14px}.tree-flow-ctrl-btn:hover:not(:disabled):not(.is-tracing){background:color-mix(in srgb, var(--kerala-teal) 14%, var(--surface));color:var(--kerala-teal);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--kerala-teal) 22%, transparent), 0 0 14px #1a5c542e;animation:1.4s ease-in-out infinite alternate tree-ctrl-glow}.tree-flow-ctrl-btn:active:not(:disabled):not(.is-tracing){background:color-mix(in srgb, var(--kerala-teal) 18%, var(--surface));transform:scale(.92)}.tree-flow-ctrl-btn:disabled{opacity:.35;cursor:default}.tree-flow-ctrl-btn.is-tracing{color:var(--kerala-gold);background:color-mix(in srgb, var(--kerala-gold) 8%, var(--surface));box-shadow:0 4px 16px color-mix(in srgb, var(--kerala-teal) 14%, transparent), 0 0 12px #e8c56d47}.tree-flow-ctrl-btn .gold-border-trace{width:100%;height:100%;inset:0}@keyframes tree-ctrl-glow{0%{box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--kerala-teal) 18%, transparent), 0 0 8px #1a5c541f}to{box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--kerala-teal) 28%, transparent), 0 0 16px #1a5c543d, 0 0 24px #e8c56d1a}}@media (prefers-reduced-motion:reduce){.tree-flow-ctrl-btn:hover:not(:disabled):not(.is-tracing){animation:none}}.tree-nav-bar{border-bottom:1px solid var(--border);background:var(--surface);flex-shrink:0;align-items:center;gap:12px;padding:8px 14px;display:flex}.tree-back-btn{border:1px solid var(--kerala-teal);border-radius:var(--radius-sm);background:color-mix(in srgb, var(--kerala-teal) 7%, var(--surface));color:var(--kerala-teal-deep);cursor:pointer;padding:5px 12px;font-size:12px;font-weight:500;transition:color .52s,border-color .52s,background .15s,box-shadow .52s;position:relative}.tree-back-btn-label{z-index:1;position:relative}.tree-back-btn:hover:not(:disabled):not(.is-tracing){background:color-mix(in srgb, var(--kerala-teal) 12%, var(--surface));border-color:var(--kerala-teal-deep)}.tree-back-btn:disabled{cursor:default}.tree-back-btn.is-tracing{color:var(--kerala-gold);box-shadow:0 6px 20px color-mix(in srgb, var(--kerala-teal) 18%, transparent), 0 2px 10px #e8c56d38;border-color:#0000}.tree-back-btn .gold-border-trace{width:100%;height:100%;inset:0}.tree-breadcrumb{color:var(--text-3);flex-wrap:wrap;align-items:center;gap:2px;font-size:12px;display:flex}.tree-crumb-sep{opacity:.5;margin:0 4px}.tree-person-node{padding-bottom:22px!important}.tree-expand-btn{background:color-mix(in srgb, var(--kerala-gold) 10%, var(--surface));width:22px;height:22px;color:var(--kerala-gold);z-index:2;cursor:pointer;-webkit-tap-highlight-color:transparent;border:1px solid #c4922a6b;border-radius:50%;place-items:center;font-size:14px;line-height:1;transition:color .22s,border-color .22s,background .22s,box-shadow .22s;display:grid;position:absolute;bottom:-11px;left:50%;transform:translate(-50%);box-shadow:0 1px 4px #0e3d380f,0 0 0 1px #e8c56d0f}.tree-expand-btn-icon{z-index:1;place-items:center;line-height:1;display:grid;position:relative}.tree-expand-btn:hover:not(:disabled):not(.is-tracing){border-color:var(--kerala-gold);color:var(--kerala-gold-light);background:color-mix(in srgb, var(--kerala-gold) 16%, var(--surface));box-shadow:0 0 12px #e8c56d47,0 0 0 1px #e8c56d1f}.tree-expand-btn.is-tracing{color:var(--kerala-gold-light);background:color-mix(in srgb, var(--kerala-gold) 14%, var(--surface));border-color:#0000;box-shadow:0 2px 12px #e8c56d52,0 0 16px #c4922a2e}.tree-expand-btn.is-tracing .tree-expand-btn-icon{animation:.33s cubic-bezier(.22,1,.36,1) forwards tree-expand-spin}.tree-expand-btn:disabled{cursor:default}.tree-expand-btn .gold-border-trace{width:100%;height:100%;inset:0}@keyframes tree-expand-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.tree-expand-btn.is-tracing .tree-expand-btn-icon{animation:none}}.tree-collapse-btn{border:1px solid color-mix(in srgb, var(--kerala-teal) 42%, transparent);background:color-mix(in srgb, var(--kerala-teal) 10%, var(--surface));width:22px;height:22px;color:var(--kerala-teal);box-shadow:0 1px 4px #0e3d380f, 0 0 0 1px color-mix(in srgb, var(--kerala-teal) 6%, transparent);z-index:2;cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:50%;place-items:center;font-size:14px;line-height:1;transition:color .22s,border-color .22s,background .22s,box-shadow .22s;display:grid;position:absolute;bottom:-11px;left:50%;transform:translate(-50%)}.tree-collapse-btn-icon{z-index:1;place-items:center;line-height:1;display:grid;position:relative}.tree-collapse-btn:hover:not(:disabled):not(.is-tracing){border-color:var(--kerala-teal);color:var(--kerala-teal-deep);background:color-mix(in srgb, var(--kerala-teal) 16%, var(--surface));box-shadow:0 0 12px color-mix(in srgb, var(--kerala-teal) 28%, transparent), 0 0 0 1px color-mix(in srgb, var(--kerala-teal) 12%, transparent)}.tree-collapse-btn.is-tracing{color:var(--kerala-teal-deep);background:color-mix(in srgb, var(--kerala-teal) 14%, var(--surface));box-shadow:0 2px 12px color-mix(in srgb, var(--kerala-teal) 32%, transparent), 0 0 16px color-mix(in srgb, var(--kerala-teal) 18%, transparent);border-color:#0000}.tree-collapse-btn.is-tracing .tree-collapse-btn-icon{animation:.33s cubic-bezier(.22,1,.36,1) forwards tree-collapse-spin}.tree-collapse-btn:disabled{cursor:default}.tree-collapse-btn .gold-border-trace{width:100%;height:100%;inset:0}@keyframes tree-collapse-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.tree-collapse-btn.is-tracing .tree-collapse-btn-icon{animation:none}}.home-scroll{min-height:100%}.home-hero{background:linear-gradient(165deg, var(--kerala-teal-deep) 0%, var(--kerala-teal) 42%, #1e6b62 100%);min-height:min(72vh,560px);color:var(--kerala-cream);place-items:center;padding:48px 24px 64px;display:grid;position:relative;overflow:hidden}.home-hero-pattern{opacity:.12;background-image:radial-gradient(circle at 20% 30%, var(--kerala-gold-light) 1px, transparent 1px), radial-gradient(circle at 80% 70%, var(--kerala-gold-light) 1px, transparent 1px), repeating-linear-gradient(45deg, transparent, transparent 18px, #ffffff0a 18px, #ffffff0a 19px);background-size:48px 48px,48px 48px,auto;position:absolute;inset:0}.home-hero-inner{z-index:1;text-align:center;max-width:520px;position:relative}.home-hero-eyebrow{letter-spacing:.14em;text-transform:uppercase;color:var(--kerala-gold-light);margin-bottom:12px;font-size:11px}.home-hero-title{flex-direction:column;align-items:center;gap:0;margin-bottom:18px;display:flex}.home-hero-title-line{letter-spacing:.12em;text-transform:uppercase;color:#faf6efe0;font-size:clamp(1.25rem,3.5vw,1.65rem);font-weight:500;line-height:1.2}.home-hero-title-pulickal{font-family:var(--font-display);letter-spacing:.02em;color:var(--kerala-cream);text-shadow:0 2px 28px #00000038;margin:4px 0 8px;font-size:clamp(3.25rem,13vw,5.25rem);font-weight:400;line-height:1}.home-hero-sub{color:#faf6efd1;letter-spacing:.02em;margin-bottom:28px;font-size:15px;line-height:1.65}.home-hero-actions{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.home-hero-cta{border-radius:var(--radius);justify-content:center;align-items:center;padding:10px 18px;font-size:13px;font-weight:500;transition:transform .15s,background .15s,color .52s,box-shadow .52s,border-color .52s;display:inline-flex;position:relative}.home-hero-cta-label{z-index:1;position:relative}.home-hero-cta-primary{background:var(--kerala-gold);color:var(--kerala-teal-deep)}.home-hero-cta-secondary{color:var(--kerala-cream);background:#ffffff14;border:1px solid #faf6ef59}.home-hero-cta:hover:not(.is-tracing){transform:translateY(-1px)}.home-hero-cta.is-tracing{pointer-events:none;transform:none}.home-hero-cta-primary.is-tracing{color:var(--kerala-cream);box-shadow:0 10px 32px #00000047,0 4px 14px #ffffff1f}.home-hero-cta-secondary.is-tracing{color:var(--kerala-gold);border-color:#0000;box-shadow:0 10px 32px #00000038,0 4px 18px #e8c56d47}.home-hero-cta .gold-border-trace{width:100%;height:100%;inset:0}.home-hero-motif{pointer-events:none;border:2px solid #e8c56d40;border-radius:50%;width:120px;height:120px;position:absolute}.home-hero-motif-left{border-color:#e8c56d26;bottom:20%;left:-30px}.home-hero-motif-right{width:80px;height:80px;top:15%;right:-20px}.home-hero-motif:after{content:"";border:1px solid #e8c56d33;border-radius:50%;position:absolute;inset:18%}.home-founders{max-width:640px;margin:0 auto;padding:56px 24px 72px}.home-founders-header{text-align:center;margin-bottom:36px}.home-founders-eyebrow{text-transform:uppercase;letter-spacing:.1em;color:var(--kerala-teal);margin-bottom:10px;font-size:10px;font-weight:500}.home-founders-desc{color:var(--text-2);max-width:420px;margin:0 auto;font-size:14px;line-height:1.55}.home-founders-couple{flex-direction:column;align-items:center;gap:0;display:flex}.home-founder-card{text-align:left;cursor:pointer;border-color:var(--border);align-items:center;gap:16px;width:100%;max-width:280px;padding:20px;transition:border-color .25s,box-shadow .4s;display:flex;position:relative;box-shadow:0 0 #0000}.home-founder-card:disabled{cursor:default}.home-founder-card.is-tracing{box-shadow:none;border-color:#0000}.home-founder-card:hover:not(:disabled):not(.is-tracing){border-color:var(--kerala-teal);box-shadow:0 8px 28px color-mix(in srgb, var(--kerala-teal) 26%, transparent)}.home-founder-text{flex-direction:column;gap:4px;min-width:0;display:flex}.home-founder-birthday{color:var(--text-3);font-size:12px}.home-founders-link{color:var(--kerala-maroon);align-items:center;gap:10px;padding:12px 0;display:flex}.home-founders-link-line{background:var(--border);width:32px;height:1px}.home-founders-link-icon{opacity:.7;font-size:14px}.home-founders-footer{text-align:center;margin-top:40px}.home-tree-link{color:var(--kerala-teal);font-size:14px;font-weight:500}.home-tree-link:hover{text-decoration:underline}@media (min-width:520px){.home-founders-couple{flex-direction:row;justify-content:center;align-items:stretch;gap:16px}.home-founders-link{flex-direction:column;align-self:center;padding:0 4px}.home-founders-link-line{width:1px;height:24px}}.map-view{flex-direction:column;height:100%;padding:16px 16px 12px;display:flex;overflow:hidden}.map-view-header{flex-shrink:0;align-items:baseline;gap:10px;margin-bottom:8px;display:flex}.map-stage{flex:1;min-height:0;margin-top:10px;position:relative}.map-view-eyebrow{text-transform:uppercase;letter-spacing:.1em;color:var(--kerala-teal);font-size:10px;font-weight:500}.map-view-meta{color:var(--text-3);font-size:12px}.map-frame{border-color:color-mix(in srgb, var(--kerala-teal) 24%, var(--border));background:color-mix(in srgb, var(--kerala-teal) 5%, var(--surface));height:100%;box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--kerala-teal) 8%, transparent), 0 2px 12px color-mix(in srgb, var(--kerala-teal) 8%, transparent);padding:6px;overflow:hidden}.map-globe{border-radius:calc(var(--radius-sm) - 2px);width:100%;height:100%;min-height:280px;position:relative;overflow:hidden}.map-globe canvas{outline:none;display:block}.map-flow-controls{z-index:3;margin:0 14px 14px 0;position:absolute;bottom:0;right:0}.map-empty-hint{color:var(--text-2);border-radius:var(--radius-sm);background:color-mix(in srgb, var(--surface) 92%, transparent);border:1px solid color-mix(in srgb, var(--kerala-teal) 18%, var(--border));margin:0;padding:10px 12px;font-size:13px;position:absolute;bottom:16px;left:16px;right:16px}.map-locations{scrollbar-width:thin;flex-wrap:wrap;flex-shrink:0;align-items:flex-start;gap:6px;padding:0 2px 2px;display:flex;overflow:auto hidden}.map-locations::-webkit-scrollbar{height:4px}.map-locations::-webkit-scrollbar-thumb{background:color-mix(in srgb, var(--kerala-teal) 30%, transparent);border-radius:999px}.map-location-chip{text-align:left;cursor:pointer;border-color:var(--border);flex-shrink:0;align-items:center;gap:6px;padding:4px 8px;font-size:12px;transition:border-color .25s,box-shadow .4s,color .25s;display:flex;position:relative;box-shadow:0 0 #0000}.map-location-chip:disabled{cursor:default}.map-location-chip.is-tracing{box-shadow:none;border-color:#0000}.map-location-chip .gold-border-trace{width:100%;height:100%;inset:0}.map-location-chip:hover:not(:disabled):not(.is-tracing):not(.is-active){border-color:var(--kerala-teal);box-shadow:0 8px 28px color-mix(in srgb, var(--kerala-teal) 26%, transparent)}.map-location-chip.is-active{border-color:color-mix(in srgb, var(--kerala-gold) 55%, var(--kerala-teal));background:color-mix(in srgb, var(--kerala-gold) 6%, var(--surface));box-shadow:0 4px 16px color-mix(in srgb, var(--kerala-teal) 14%, transparent), 0 0 10px color-mix(in srgb, var(--kerala-gold) 18%, transparent)}.map-location-chip.is-active .map-location-label,.map-location-chip.is-tracing .map-location-label{color:var(--kerala-gold)}.map-location-count{color:var(--text-3)}.map-location-group{flex-direction:column;flex-shrink:0;min-width:0;display:flex}.map-location-people{flex-direction:column;gap:4px;padding-top:4px;display:flex;overflow:hidden}.map-location-person-chip{text-align:left;cursor:pointer;border-color:color-mix(in srgb, var(--kerala-teal) 22%, var(--border));background:color-mix(in srgb, var(--kerala-teal) 4%, var(--surface));width:100%;box-shadow:none;padding:3px 8px 3px 10px;font-size:11px;transition:border-color .25s,box-shadow .35s,color .25s;position:relative}.map-location-person-chip:before{content:"";background:var(--kerala-teal);border-radius:1px;width:2px;position:absolute;top:4px;bottom:4px;left:0}.map-location-person-chip:disabled{cursor:default}.map-location-person-chip.is-tracing{box-shadow:none;border-color:#0000}.map-location-person-chip:hover:not(:disabled):not(.is-tracing){border-color:var(--kerala-teal);box-shadow:0 6px 20px color-mix(in srgb, var(--kerala-teal) 20%, transparent)}.map-location-person-chip:hover:not(:disabled):not(.is-tracing) .map-location-person-name{color:var(--kerala-teal-deep)}.map-location-person-chip.is-tracing .map-location-person-name{color:var(--kerala-gold)}.map-location-person-name{white-space:nowrap;color:var(--kerala-teal);display:block}.calendar-view{max-width:480px;margin:0 auto;padding:16px 16px 32px}.calendar-view-header{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px;display:flex}.calendar-view-eyebrow{text-transform:uppercase;letter-spacing:.1em;color:var(--kerala-teal);font-size:10px;font-weight:500}.calendar-view-meta{color:var(--text-3);font-size:12px}.calendar-download-btn{cursor:pointer;border-color:color-mix(in srgb, var(--kerala-teal) 28%, var(--border));background:color-mix(in srgb, var(--kerala-teal) 6%, var(--surface));color:var(--kerala-teal);justify-content:center;align-items:center;margin-left:auto;padding:7px 12px;font-size:13px;font-weight:500;text-decoration:none;transition:border-color .25s,box-shadow .4s,color .25s,background .25s;display:inline-flex;position:relative;box-shadow:0 0 #0000}.calendar-download-btn-label{z-index:1;position:relative}.calendar-download-btn:hover:not(.is-tracing){border-color:var(--kerala-teal);box-shadow:0 8px 28px color-mix(in srgb, var(--kerala-teal) 26%, transparent)}.calendar-download-btn.is-tracing{box-shadow:none;pointer-events:none;border-color:#0000}.calendar-download-btn.is-tracing .calendar-download-btn-label{color:var(--kerala-gold)}.calendar-download-btn .gold-border-trace{width:100%;height:100%;inset:0}.calendar-filters{flex-wrap:wrap;gap:6px;margin-bottom:16px;display:flex}.calendar-filter-chip{cursor:pointer;border-color:var(--border);background:var(--surface);color:var(--text-2);flex-shrink:0;padding:4px 10px;font-size:12px;transition:border-color .25s,box-shadow .4s,color .25s,background .25s;position:relative;box-shadow:0 0 #0000}.calendar-filter-chip:disabled{cursor:default}.calendar-filter-chip.is-tracing{box-shadow:none;color:var(--kerala-gold);border-color:#0000}.calendar-filter-chip:hover:not(:disabled):not(.is-tracing):not(.is-active){border-color:var(--kerala-teal);box-shadow:0 8px 28px color-mix(in srgb, var(--kerala-teal) 26%, transparent);color:var(--kerala-teal)}.calendar-filter-chip.is-active{border-color:color-mix(in srgb, var(--kerala-gold) 55%, var(--kerala-teal));background:color-mix(in srgb, var(--kerala-gold) 6%, var(--surface));color:var(--kerala-teal-deep);box-shadow:0 4px 16px color-mix(in srgb, var(--kerala-teal) 14%, transparent), 0 0 10px color-mix(in srgb, var(--kerala-gold) 18%, transparent)}.calendar-filter-chip .gold-border-trace{width:100%;height:100%;inset:0}.calendar-months{flex-direction:column;gap:18px;display:flex}.calendar-month-title{text-transform:uppercase;letter-spacing:.1em;color:var(--kerala-teal);margin-bottom:8px;font-size:10px;font-weight:500}.calendar-month-card{border-color:color-mix(in srgb, var(--kerala-gold) 50%, var(--border));background:color-mix(in srgb, var(--kerala-teal) 3%, var(--surface));box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--kerala-gold) 12%, transparent), 0 2px 12px color-mix(in srgb, var(--kerala-teal) 6%, transparent);overflow:hidden}.calendar-event-row{border:none;border-bottom:1px solid color-mix(in srgb, var(--kerala-gold) 18%, var(--border-sub));text-align:left;cursor:pointer;background:0 0;align-items:center;gap:8px;width:100%;padding:7px 10px;transition:background .25s,box-shadow .35s;display:flex;position:relative}.calendar-event-row--last{border-bottom:none}.calendar-event-row:disabled{cursor:default}.calendar-event-row.is-tracing{background:color-mix(in srgb, var(--kerala-gold) 6%, var(--surface))}.calendar-event-row:hover:not(:disabled):not(.is-tracing){background:color-mix(in srgb, var(--kerala-teal) 5%, var(--surface))}.calendar-event-row .gold-border-trace{width:100%;height:100%;inset:0}.calendar-event-day{width:22px;color:var(--kerala-teal);flex-shrink:0;font-size:12px}.calendar-event-title{min-width:0;color:var(--text-1);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:13px;transition:color .25s;overflow:hidden}.calendar-event-row.is-tracing .calendar-event-title{color:var(--kerala-gold)}.calendar-event-badge{flex-shrink:0}.calendar-event-badge--birthday{background:color-mix(in srgb, var(--kerala-teal) 10%, var(--surface));color:var(--kerala-teal);border-color:color-mix(in srgb, var(--kerala-teal) 38%, transparent)}.calendar-event-badge--anniversary{background:color-mix(in srgb, var(--kerala-gold) 12%, var(--surface));color:var(--kerala-gold);border-color:color-mix(in srgb, var(--kerala-gold) 42%, transparent)}.calendar-event-badge--memorial{background:color-mix(in srgb, #111 7%, var(--surface));color:#111;border-color:#11111152}
