@font-face{font-family:Geist;font-style:normal;font-display:swap;font-weight:400;src:url(../media/geist-cyrillic-ext-400-normal.3c_o3_1lpog9p.woff2)format("woff2"),url(../media/geist-cyrillic-ext-400-normal.3n0legglmmtkq.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.415levixm-iyz.woff2)format("woff2"),url(../media/geist-cyrillic-400-normal.3iy07jk07-74c.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.1c3n1wwh214rh.woff2)format("woff2"),url(../media/geist-vietnamese-400-normal.2gpd5c6sawmbt.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.0o4igpbwkz82n.woff2)format("woff2"),url(../media/geist-latin-ext-400-normal.21262rh264_ga.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.2o3xb38ucbuw3.woff2)format("woff2"),url(../media/geist-latin-400-normal.3_8nx-q6rmhpn.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.0xcckp87ge8hd.woff2)format("woff2"),url(../media/geist-cyrillic-ext-500-normal.3luma1rgkkh8v.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.0vky5ima137_f.woff2)format("woff2"),url(../media/geist-cyrillic-500-normal.1pjod7dxj43r_.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.3-onrlz187gnz.woff2)format("woff2"),url(../media/geist-vietnamese-500-normal.2e8kwpo_yhrhk.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.1ecetbt76p1t7.woff2)format("woff2"),url(../media/geist-latin-ext-500-normal.0h6-gmcke0lt5.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.19fpjsj-urh6p.woff2)format("woff2"),url(../media/geist-latin-500-normal.10bl8ih591qe9.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.2t8perqamhc5k.woff2)format("woff2"),url(../media/geist-cyrillic-ext-600-normal.3wgbrbc0y3xgi.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.2yu98cd35e-mc.woff2)format("woff2"),url(../media/geist-cyrillic-600-normal.1re4gvh7k75ky.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.1mlgdce59f0r0.woff2)format("woff2"),url(../media/geist-vietnamese-600-normal.2h5uwb23i_j7r.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.2a823cxcmxpc2.woff2)format("woff2"),url(../media/geist-latin-ext-600-normal.30uepi75kj8m5.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.2wfsxoxr0shu2.woff2)format("woff2"),url(../media/geist-latin-600-normal.33pj_iqwagnzd.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.0pgbzrce3_ta1.woff2)format("woff2"),url(../media/geist-cyrillic-ext-700-normal.3yv7935xudbm7.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.2ew178mkz-_z9.woff2)format("woff2"),url(../media/geist-cyrillic-700-normal.1u8t8uthp-bdd.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.2xxdf86bq3fw5.woff2)format("woff2"),url(../media/geist-vietnamese-700-normal.3tnys-k36cruy.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.375xizdrlc2a7.woff2)format("woff2"),url(../media/geist-latin-ext-700-normal.0j_-eqd_0a75b.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.09wdiuakezl8w.woff2)format("woff2"),url(../media/geist-latin-700-normal.0kf3a6bd9ap32.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.2jabsb09-2sus.woff2)format("woff2"),url(../media/geist-mono-cyrillic-ext-400-normal.2afr7cxaqcx68.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.20r12c9c-2q2g.woff2)format("woff2"),url(../media/geist-mono-cyrillic-400-normal.0pqmwiu5x0bad.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.1mz54wccy6vrf.woff2)format("woff2"),url(../media/geist-mono-symbols2-400-normal.14rmb_72fr3wi.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.0lmp5pnpu2qwj.woff2)format("woff2"),url(../media/geist-mono-vietnamese-400-normal.2je3ybho6cpzj.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.3fuaif-lh8spy.woff2)format("woff2"),url(../media/geist-mono-latin-ext-400-normal.31k9kb7m4g0s5.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.14rq45sqip5qk.woff2)format("woff2"),url(../media/geist-mono-latin-400-normal.0m1shb5fwz2sl.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.2t6lfh0b9rsdt.woff2)format("woff2"),url(../media/geist-mono-cyrillic-ext-500-normal.2ufz1zz10u7if.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.24j0899ep91p_.woff2)format("woff2"),url(../media/geist-mono-cyrillic-500-normal.2_hnl5t90nbon.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.1mis-ptcg5tge.woff2)format("woff2"),url(../media/geist-mono-symbols2-500-normal.1lm0zqvcmu6hh.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.3egi_f3mafy6m.woff2)format("woff2"),url(../media/geist-mono-vietnamese-500-normal.30efie2_olz0n.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.3ut6uzyz6ldy5.woff2)format("woff2"),url(../media/geist-mono-latin-ext-500-normal.10ptbkcelzgb2.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.2wqs4l1x-crju.woff2)format("woff2"),url(../media/geist-mono-latin-500-normal.2a7t0iyxjehu-.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.3flgrcartnym1.woff2)format("woff2"),url(../media/fleur-de-leah-vietnamese-400-normal.43grup5b3c7w9.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.2ekr2ztgnd3bm.woff2)format("woff2"),url(../media/fleur-de-leah-latin-ext-400-normal.33bn1wyzmtmtp.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.0qjzgu23nj5-6.woff2)format("woff2"),url(../media/fleur-de-leah-latin-400-normal.44k16m0sey-70.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;--theme-ground:#f7f5f0;--theme-accent:#a23a4b;--theme-accent-light:#c97d8d;--theme-accent-deep:#6b1f2f;--theme-petal-pale:#ecc9cf;--theme-leaf:#3f6b4a;--theme-leaf-deep:#23402c;--theme-leaf-mid:#6f8a55;--input-inset:inset 0 1px 4px #23402c14;--input-inset-focus:inset 0 0 0 1px color-mix(in srgb, var(--theme-leaf) 10%, transparent), inset 0 2px 10px color-mix(in srgb, var(--theme-leaf) 12%, transparent), var(--input-inset);--glow-accent:0 0 10px #c97d8d8c, 0 0 22px #a23a4b47;--glow-accent-soft:0 0 6px #c97d8d59;--glow-leaf:0 0 10px #3f6b4a73, 0 0 22px #23402c38;--glow-leaf-soft:0 0 6px #3f6b4a4d}*{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(--theme-leaf);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(--theme-accent);border-radius:var(--radius-sm);font-size:15px;font-weight:600;transition:color .2s,text-shadow .25s}.app-header-logo:hover{color:var(--theme-accent-light);text-shadow:var(--glow-accent-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(--theme-leaf);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(--theme-leaf-deep);text-shadow:var(--glow-leaf-soft);animation:1.4s ease-in-out infinite alternate header-glow-teal}.app-header-nav-link.is-active{color:var(--theme-leaf-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(--theme-accent);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(--theme-accent-light);text-shadow:var(--glow-accent-soft);animation:1.4s ease-in-out infinite alternate header-glow-gold}.app-header-signout{border:1px solid #a23a4b59}.app-header-signout:hover{box-shadow:0 0 14px #a23a4b38}@keyframes header-glow-gold{0%{text-shadow:var(--glow-accent-soft)}to{text-shadow:var(--glow-accent)}}@keyframes header-glow-teal{0%{text-shadow:var(--glow-leaf-soft)}to{text-shadow:var(--glow-leaf)}}@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-accent-soft)}.app-header-nav-link:hover,.app-header-menu-link:hover{text-shadow:var(--glow-leaf-soft)}.app-header-util-link:hover,.app-header-menu-util:hover{text-shadow:var(--glow-accent-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(--theme-leaf-deep);width:48px;height:48px;color:var(--theme-accent-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 #23402c61,0 3px 10px #23402c38,0 0 0 1px #c97d8d2e}.app-fab:disabled{cursor:default}.app-fab:hover:not(.is-open):not(.is-tracing):not(:disabled){box-shadow:0 14px 40px #23402c85,0 6px 18px #23402c57,0 0 22px #c97d8d52}.app-fab.is-tracing{box-shadow:none;color:var(--theme-leaf);background:#23402c00}.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(--theme-accent-light);animation:1.4s ease-in-out infinite alternate fab-bar-glow-gold;box-shadow:0 0 8px #c97d8d8c,0 0 16px #a23a4b52}.app-header-fab.is-open{box-shadow:none;background:#23402c00}.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 #c97d8d8c)drop-shadow(0 0 12px #a23a4b52);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(--theme-accent-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(--theme-leaf);box-shadow:0 0 8px #3f6b4a73,0 0 14px #23402c47}.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 #c97d8d66,0 0 12px #a23a4b33}to{box-shadow:0 0 10px #c97d8da6,0 0 20px #a23a4b61}}.app-header-menu-backdrop{z-index:38;cursor:default;-webkit-backdrop-filter:blur(4px);background:#23402c73;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 #23402c33}.app-header-menu-logo{color:var(--theme-accent);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(--theme-accent-light);text-shadow:var(--glow-accent-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(--theme-leaf);padding:12px 10px;font-size:16px;font-weight:500;transition:color .2s,text-shadow .25s,background .15s}.app-header-menu-link:hover{color:var(--theme-leaf-deep);text-shadow:var(--glow-leaf-soft);animation:1.4s ease-in-out infinite alternate header-glow-teal}.app-header-menu-link.is-active{color:var(--theme-leaf-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(--theme-accent);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(--theme-accent-light);text-shadow:var(--glow-accent-soft);animation:1.4s ease-in-out infinite alternate header-glow-gold}.app-header-menu-signout{border:1px solid #a23a4b59;margin-top:4px}.app-header-menu-signout:hover{box-shadow:0 0 14px #a23a4b38}@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(--surface);cursor:pointer;-webkit-tap-highlight-color:transparent;border:1px solid #c97d8d38;place-items:center;width:40px;height:40px;margin-right:0;transition:transform .32s cubic-bezier(.22,1,.36,1),background .32s,box-shadow .32s,border-color .32s;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 4px 16px #23402c33,0 0 0 1px #c97d8d1f}.app-header-mobile-trigger:hover:not(.is-open){box-shadow:0 8px 24px #23402c57,0 0 16px #c97d8d38}.app-header-mobile-trigger:hover:not(.is-open) .app-header-fab-icon span{background:var(--theme-accent-light);animation:1.4s ease-in-out infinite alternate fab-bar-glow-gold;box-shadow:0 0 8px #c97d8d8c,0 0 16px #a23a4b52}.app-header-mobile-trigger.is-open{box-shadow:none;background:0 0;border-color:#0000;transform:translate(-50%,-50%)scale(.82)}.app-header-mobile-trigger .app-header-fab-icon{margin:0 auto}.app-header-mobile-trigger .app-header-fab-icon span{background:var(--theme-accent-light)}.app-header-fab{border-radius:var(--radius-sm);background:var(--surface);border:1px solid #c97d8d38;box-shadow:0 4px 16px #23402c33,0 0 0 1px #c97d8d1f}.app-header-fab:hover:not(.is-open){box-shadow:0 8px 24px #23402c57,0 0 16px #c97d8d38}.app-header-fab.is-open{box-shadow:none;background:0 0;border-color:#0000}.app-header-fab .app-header-fab-icon span{background:var(--theme-accent-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-toolbar{align-items:center;gap:10px;padding-right:52px;display:flex}.drawer-profile-header{align-items:flex-start;gap:14px;margin-top:12px;display:flex}.drawer-profile-meta{flex-direction:column;flex:1;align-items:flex-start;gap:6px;min-width:0;padding-top:2px;display:flex}.drawer-profile-up{margin-top:2px}.drawer-profile-edit-btn{margin-top:16px;margin-bottom:4px}.drawer-primary-btn{border-radius:var(--radius-sm);border:1px solid var(--theme-leaf-deep);background:var(--theme-leaf);width:100%;color:var(--theme-ground);cursor:pointer;-webkit-tap-highlight-color:transparent;justify-content:center;align-items:center;padding:10px 12px;font-family:inherit;font-size:14px;font-weight:500;transition:transform .15s,background .15s,border-color .15s,color .52s,box-shadow .52s;display:flex;position:relative}.drawer-primary-btn-label{z-index:1;position:relative}.drawer-primary-btn:hover:not(:disabled):not(.is-tracing){background:color-mix(in srgb, var(--theme-leaf) 88%, var(--theme-leaf-deep));border-color:var(--theme-leaf-deep);transform:translateY(-1px)}.drawer-primary-btn.is-tracing{color:var(--theme-leaf);pointer-events:none;background:0 0;border-color:#0000;transform:none}.drawer-primary-btn:disabled{opacity:.6;cursor:default}.drawer-primary-btn .gold-border-trace{width:100%;height:100%;inset:0}.drawer-editor-label{margin-top:10px}.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(--theme-leaf)}.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(--theme-leaf)}.home-founder-card.is-tracing .person-name-first,.home-founder-card.is-tracing .person-name-last{color:var(--theme-accent)}.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(--theme-accent)}.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(--theme-leaf);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(--theme-leaf);font-size:18px;font-weight:600}.drawer-section-label{text-transform:uppercase;letter-spacing:.1em;color:var(--theme-leaf);font-size:10px;font-weight:500}.drawer-action-btn{cursor:pointer;text-transform:uppercase;letter-spacing:.1em;color:var(--theme-leaf);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(--theme-leaf-deep)}.drawer-action-btn:disabled{cursor:default}.drawer-action-btn-label{display:inline-block;position:relative}.drawer-action-btn-label:after{content:"";background:var(--theme-accent);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(--theme-accent);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(--theme-leaf);font-size:10px;font-weight:500}.editor-save-btn{border-radius:var(--radius-sm);border:1px solid var(--theme-accent);background:var(--theme-accent);width:100%;color:var(--theme-ground);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(--theme-accent) 88%, var(--theme-leaf-deep));border-color:color-mix(in srgb, var(--theme-accent) 88%, var(--theme-leaf-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(--theme-leaf);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(--theme-leaf);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(--theme-leaf);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(--theme-leaf);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(--theme-leaf) 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(--theme-leaf-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(--theme-leaf);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(--theme-leaf);background:color-mix(in srgb, var(--theme-leaf) 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(--theme-leaf) 9%, transparent);transform:scale(1.06)}.date-picker-day.selected{background:var(--theme-leaf);color:var(--theme-ground);font-weight:600}.date-picker-day.selected:hover{background:var(--theme-leaf-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(--theme-leaf);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(--theme-leaf)}.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(--theme-leaf)}.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(--theme-leaf) 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(--theme-leaf) 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(--theme-leaf) 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(--theme-leaf);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(--theme-accent);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;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(--theme-accent)}.gold-border-trace-path--white{stroke:var(--theme-ground)}.gold-border-trace-path--teal{stroke:var(--theme-leaf)}@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(--theme-leaf) 0 14px, var(--theme-accent) 14px 28px);position:absolute;box-shadow:0 2px 12px #23402c33}.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(--theme-leaf) 0 14px, var(--theme-accent) 14px 28px);transform-origin:0;width:10px;top:0;bottom:0;left:0}.celebration-ribbon-right{background:repeating-linear-gradient(180deg, var(--theme-leaf) 0 14px, var(--theme-accent) 14px 28px);transform-origin:100%;width:10px;top:0;bottom:0;right:0}.celebration-ribbon-corner{border:3px solid var(--theme-accent);border-radius:4px;width:28px;height:28px;position:absolute}.celebration-ribbon-corner-tl{background:linear-gradient(135deg, var(--theme-leaf) 50%, transparent 50%);border-bottom:none;border-right:none;top:6px;left:6px}.celebration-ribbon-corner-tr{background:linear-gradient(225deg, var(--theme-leaf) 50%, transparent 50%);border-bottom:none;border-left:none;top:6px;right:6px}.celebration-ribbon-corner-bl{background:linear-gradient(45deg, var(--theme-leaf) 50%, transparent 50%);border-top:none;border-right:none;bottom:6px;left:6px}.celebration-ribbon-corner-br{background:linear-gradient(315deg, var(--theme-leaf) 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(--theme-leaf-deep);white-space:nowrap;text-align:center;background:#faf6eff0;border:1px solid #a23a4b59;border-radius:999px;padding:10px 20px;font-size:15px;font-weight:600;box-shadow:0 4px 20px #23402c1f}@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-view-shell .react-flow__edge.tree-lineage-edge{z-index:2;pointer-events:none}.tree-lineage-trace-path{fill:none;stroke:var(--theme-accent);stroke-width:2.5px;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke;filter:drop-shadow(0 0 5px #a23a4b6b)}.tree-lineage-trace-path--static{stroke-dasharray:none;stroke-dashoffset:0}.tree-lineage-trace-path--draw{stroke-dasharray:1;stroke-dashoffset:1px;animation:tree-lineage-draw var(--lineage-seg-dur,.32s) ease-out var(--lineage-seg-delay,0s) forwards}.tree-lineage-trace-path--retreat{stroke-dasharray:1;stroke-dashoffset:0;animation:tree-lineage-retreat var(--lineage-seg-dur,.32s) ease-in var(--lineage-seg-delay,0s) forwards}@keyframes tree-lineage-draw{to{stroke-dashoffset:0}}@keyframes tree-lineage-retreat{to{stroke-dashoffset:1px;opacity:.35}}.tree-person-node--lineage{background:color-mix(in srgb, var(--theme-accent) 5%, var(--surface))}.tree-flow-controls{border:1px solid color-mix(in srgb, var(--theme-leaf) 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 #23402c14,0 0 0 1px #c97d8d14}.tree-flow-ctrl-btn{border:none;border-bottom:1px solid var(--border-sub);background:color-mix(in srgb, var(--theme-leaf) 6%, var(--surface));width:34px;height:34px;color:var(--theme-leaf-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(--theme-leaf) 14%, var(--surface));color:var(--theme-leaf);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--theme-leaf) 22%, transparent), 0 0 14px #3f6b4a2e;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(--theme-leaf) 18%, var(--surface));transform:scale(.92)}.tree-flow-ctrl-btn:disabled{opacity:.35;cursor:default}.tree-flow-ctrl-btn.is-tracing{color:var(--theme-accent);background:color-mix(in srgb, var(--theme-accent) 8%, var(--surface));box-shadow:0 4px 16px color-mix(in srgb, var(--theme-leaf) 14%, transparent), 0 0 12px #c97d8d47}.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(--theme-leaf) 18%, transparent), 0 0 8px #3f6b4a1f}to{box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--theme-leaf) 28%, transparent), 0 0 16px #3f6b4a3d, 0 0 24px #c97d8d1a}}@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(--theme-leaf);border-radius:var(--radius-sm);background:color-mix(in srgb, var(--theme-leaf) 7%, var(--surface));color:var(--theme-leaf-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(--theme-leaf) 12%, var(--surface));border-color:var(--theme-leaf-deep)}.tree-back-btn:disabled{cursor:default}.tree-back-btn.is-tracing{color:var(--theme-accent);box-shadow:0 6px 20px color-mix(in srgb, var(--theme-leaf) 18%, transparent), 0 2px 10px #c97d8d38;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(--theme-accent) 10%, var(--surface));width:22px;height:22px;color:var(--theme-accent);z-index:2;cursor:pointer;-webkit-tap-highlight-color:transparent;border:1px solid #a23a4b6b;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 #23402c0f,0 0 0 1px #c97d8d0f}.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(--theme-accent);color:var(--theme-accent-light);background:color-mix(in srgb, var(--theme-accent) 16%, var(--surface));box-shadow:0 0 12px #c97d8d47,0 0 0 1px #c97d8d1f}.tree-expand-btn.is-tracing{color:var(--theme-accent-light);background:color-mix(in srgb, var(--theme-accent) 14%, var(--surface));border-color:#0000;box-shadow:0 2px 12px #c97d8d52,0 0 16px #a23a4b2e}.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(--theme-leaf) 42%, transparent);background:color-mix(in srgb, var(--theme-leaf) 10%, var(--surface));width:22px;height:22px;color:var(--theme-leaf);box-shadow:0 1px 4px #23402c0f, 0 0 0 1px color-mix(in srgb, var(--theme-leaf) 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(--theme-leaf);color:var(--theme-leaf-deep);background:color-mix(in srgb, var(--theme-leaf) 16%, var(--surface));box-shadow:0 0 12px color-mix(in srgb, var(--theme-leaf) 28%, transparent), 0 0 0 1px color-mix(in srgb, var(--theme-leaf) 12%, transparent)}.tree-collapse-btn.is-tracing{color:var(--theme-leaf-deep);background:color-mix(in srgb, var(--theme-leaf) 14%, var(--surface));box-shadow:0 2px 12px color-mix(in srgb, var(--theme-leaf) 32%, transparent), 0 0 16px color-mix(in srgb, var(--theme-leaf) 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:radial-gradient(130% 100% at 22% 8%, #fdfcfa 0%, transparent 58%), linear-gradient(168deg, #f9f8f4 0%, var(--theme-ground) 46%, #eeebe2 100%);min-height:clamp(360px,26vw,470px);color:var(--text-1);border-bottom:1px solid var(--border);place-items:center;padding:40px 24px 48px;display:grid;position:relative;overflow:hidden}.hero-atmosphere{z-index:0;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.home-hero-pattern{opacity:.55;background-image:radial-gradient(60% 45% at 12% 78%,#6b1f2f0b,#0000 70%),radial-gradient(52% 40% at 88% 20%,#23402c0d,#0000 72%),repeating-linear-gradient(98deg,#0000,#0000 22px,#6b1f2f04 22px 23px);position:absolute;inset:0}.home-hero-inner{z-index:1;text-align:center;max-width:520px;position:relative}.home-hero-eyebrow{letter-spacing:.02em;color:var(--theme-leaf);margin-bottom:14px;font-size:13px}.home-hero-title{flex-direction:column;align-items:center;gap:0;margin-bottom:8px;display:flex}.home-hero-title-line{letter-spacing:.12em;text-transform:uppercase;color:var(--theme-leaf-deep);font-size:clamp(1.05rem,1.6vw,1.4rem);font-weight:500;line-height:1.2}.home-hero-title-word{margin:6px 0 4px;display:block;position:relative}.home-hero-title-name{font-family:var(--font-display);letter-spacing:.01em;color:var(--theme-accent-deep);background-image:linear-gradient(172deg, var(--theme-accent) 0%, var(--theme-accent-deep) 58%, var(--theme-accent-deep) 100%);-webkit-text-fill-color:transparent;filter:drop-shadow(0 0 12px color-mix(in srgb, var(--theme-accent-light) 26%, transparent));-webkit-background-clip:text;background-clip:text;padding:0 .08em;font-size:clamp(3rem,4.6vw,4.6rem);font-weight:400;line-height:1.05;display:block}@media (min-width:721px){.home-hero-title-name{font-size:clamp(6rem,9.2vw,9.2rem)}}.hero-divider{justify-content:center;align-items:center;gap:12px;width:min(300px,78vw);margin:0 auto 14px;display:flex}.hero-divider-line{flex:1;height:1px}.hero-divider-line--left{background:linear-gradient(90deg, transparent, color-mix(in srgb, var(--theme-leaf) 55%, transparent))}.hero-divider-line--right{background:linear-gradient(270deg, transparent, color-mix(in srgb, var(--theme-leaf) 55%, transparent))}.hero-divider-rose{width:44px;height:44px;filter:drop-shadow(0 0 4px color-mix(in srgb, var(--theme-accent-light) 32%, transparent));flex:none;animation:4.8s ease-in-out infinite divider-pulse;overflow:visible}@keyframes divider-pulse{0%,to{transform:scale(1)rotate(-2deg)}50%{transform:scale(1.07)rotate(3deg)}}.home-hero-sub{color:var(--text-2);letter-spacing:.01em;margin-bottom:22px;font-size:15px;line-height:1.7}.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(--theme-accent);color:#fff}.home-hero-cta-secondary{border:1px solid color-mix(in srgb, var(--theme-leaf) 38%, transparent);color:var(--theme-leaf-deep);background:#ffffffb8}.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:#fff;box-shadow:0 8px 28px #6b1f2f38,0 2px 10px #6b1f2f24}.home-hero-cta-secondary.is-tracing{color:var(--theme-accent);border-color:#0000;box-shadow:0 8px 28px #3f6b4a2e,0 2px 14px #c97d8d47}.home-hero-cta .gold-border-trace{width:100%;height:100%;inset:0}.hero-botanicals{z-index:0;pointer-events:none;position:absolute;inset:0;overflow:hidden}.home-hero{--bt-r1-top:color-mix(in oklch, var(--theme-accent-light) 68%, var(--theme-petal-pale));--bt-r1-bottom:color-mix(in oklch, var(--theme-accent-light) 50%, var(--theme-accent));--bt-r2-top:color-mix(in srgb, var(--theme-accent) 62%, var(--theme-accent-light));--bt-r2-bottom:color-mix(in srgb, var(--theme-accent) 82%, var(--theme-accent-deep));--bt-r3-top:color-mix(in srgb, var(--theme-accent) 88%, var(--theme-accent-deep));--bt-r3-bottom:color-mix(in srgb, var(--theme-accent) 42%, var(--theme-accent-deep));--bt-r4-top:color-mix(in srgb, var(--theme-accent-deep) 78%, var(--theme-accent));--bt-r4-bottom:color-mix(in srgb, var(--theme-accent-deep) 92%, black);--bt-core:color-mix(in srgb, var(--theme-accent-deep) 80%, black);--bt-swirl:color-mix(in srgb, var(--theme-petal-pale) 62%, var(--theme-accent-light));--bt-leaf-base:var(--theme-leaf);--bt-leaf-dark:color-mix(in srgb, var(--theme-leaf) 58%, var(--theme-leaf-deep));--bt-leaf-light:color-mix(in srgb, var(--theme-leaf) 52%, var(--theme-leaf-mid));--bt-stem:var(--theme-leaf-deep);--bt-swoosh:var(--theme-leaf-mid)}.bt-cluster{position:absolute;bottom:0}.bt-cluster svg{width:100%;height:100%;display:block;overflow:visible}.bt-cluster--left{aspect-ratio:500/270;transform-origin:0 100%;width:min(40vw,720px);left:0}.bt-cluster--right{aspect-ratio:320/270;transform-origin:100% 100%;width:min(27vw,480px);right:0}.bt-swoosh{will-change:transform;animation:28s ease-in-out infinite alternate bt-drift;position:absolute;bottom:0;-webkit-mask-image:linear-gradient(#0000 0,#000 38%);mask-image:linear-gradient(#0000 0,#000 38%)}.bt-swoosh svg{filter:blur(6px);width:100%;height:100%;display:block}.bt-swoosh--left{aspect-ratio:420/270;width:min(54vw,940px);left:0}.bt-swoosh--right{aspect-ratio:380/270;width:min(38vw,640px);animation-direction:alternate-reverse;right:0}.bt-stem{fill:none;stroke:var(--bt-stem);stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1px;animation:bt-draw var(--dur) cubic-bezier(.32, 0, .3, 1) var(--delay) forwards}.bt-stem-hl{stroke:var(--bt-leaf-light);stroke-opacity:.5}.bt-leaf{transform-box:fill-box;transform-origin:0%;opacity:0;animation:bt-leaf-in .6s cubic-bezier(.22, 1.2, .36, 1) var(--delay) forwards;transform:scale(.1)rotate(-14deg)}.bt-flutter{animation:bt-leaf-in .6s cubic-bezier(.22, 1.2, .36, 1) var(--delay) forwards, bt-flutter 5.6s ease-in-out calc(var(--delay) + 1.4s) infinite}.bt-leaf-top{fill:url(#btleaf-top)}.bt-leaf-bottom{fill:url(#btleaf-bottom)}.bt-petiole{fill:none;stroke:var(--bt-stem);stroke-width:2px;stroke-linecap:round}.bt-leaf-veins{fill:none;stroke:var(--bt-leaf-light);stroke-opacity:.35;stroke-width:.9px;stroke-linecap:round}.bt-leaf-rib{fill:none;stroke:var(--bt-leaf-dark);stroke-opacity:.85;stroke-width:1.3px;stroke-linecap:round;filter:drop-shadow(0 -.9px 0 color-mix(in srgb, var(--bt-leaf-light) 80%, transparent))}.bt-bud{transform-box:fill-box;transform-origin:50% 100%;animation:bt-bud-in .7s cubic-bezier(.2, 1.1, .3, 1) var(--delay) forwards, bt-bud-sway 7s ease-in-out calc(var(--delay) + 1s) infinite;transform:scale(0)}.bt-bud-body{fill:url(#btg2)}.bt-bud-shadow{fill:color-mix(in srgb, var(--theme-accent-deep) 82%, black);fill-opacity:.62}.bt-bud-wrap{fill:url(#btg0)}.bt-bud-inner{fill:color-mix(in srgb, var(--theme-accent-light) 55%, var(--theme-petal-pale));fill-opacity:.85}.bt-bud-lip{fill:none;stroke:var(--theme-petal-pale);stroke-opacity:.55;stroke-width:1.1px;stroke-linecap:round}.bt-bud-crease{fill:none;stroke:var(--theme-accent-deep);stroke-opacity:.55;stroke-width:.8px;stroke-linecap:round}.bt-bud--pink .bt-bud-body{fill:url(#btg1)}.bt-bud--pink .bt-bud-wrap{fill:url(#btg0);fill-opacity:.95}.bt-sepal-back{fill:var(--bt-leaf-dark)}.bt-sepal{fill:var(--bt-leaf-base)}.bt-calyx{fill:var(--bt-leaf-dark)}.bt-rose{transform-box:fill-box;transform-origin:50%;animation:bt-bloom .9s cubic-bezier(.2, 1.1, .3, 1) var(--delay) forwards, bt-breathe 6.5s ease-in-out calc(var(--delay) + 1.7s) infinite;transform:scale(0)}.bt-petal{transform-box:fill-box;transform-origin:50% 100%;animation:.7s cubic-bezier(.22,1,.36,1) both bt-petal-in;animation-delay:calc(var(--delay) + .15s + var(--i) * 30ms)}.bt-shade{fill:var(--theme-accent-deep);fill-opacity:.4}.bt-p0{fill:url(#btg0);stroke:color-mix(in srgb, var(--theme-accent) 48%, transparent);stroke-width:.7px}.bt-p1{fill:url(#btg1);stroke:color-mix(in srgb, var(--theme-accent-deep) 55%, transparent);stroke-width:.7px}.bt-p2{fill:url(#btg2);stroke:color-mix(in srgb, var(--theme-accent-deep) 60%, transparent);stroke-width:.6px}.bt-p3{fill:url(#btg3);stroke:color-mix(in srgb, var(--theme-accent-deep) 70%, transparent);stroke-width:.5px}.bt-lip{fill:none;stroke:var(--theme-petal-pale);stroke-opacity:.5;stroke-width:1.1px;stroke-linecap:round}.bt-core{fill:var(--bt-core)}.bt-spiral{fill:none;stroke:var(--bt-swirl);stroke-linecap:round;stroke-opacity:.9}.bt-spiral-1{stroke-opacity:.72}.bt-spiral-2{stroke-opacity:.55}.bt-mini{width:100%;height:100%;display:block;overflow:visible}@keyframes bt-draw{to{stroke-dashoffset:0}}@keyframes bt-leaf-in{to{opacity:1;transform:scale(1)rotate(0)}}@keyframes bt-bud-in{0%{transform:scale(0)}70%{transform:scale(1.06)}to{transform:scale(1)}}@keyframes bt-bloom{0%{transform:scale(0)}72%{transform:scale(1.05)}to{transform:scale(1)}}@keyframes bt-petal-in{0%{opacity:.3;scale:.55}to{opacity:1;scale:1}}@keyframes bt-flutter{0%,to{rotate:0deg}25%{rotate:-2.6deg}75%{rotate:3deg}}@keyframes bt-bud-sway{0%,to{rotate:0deg}25%{rotate:-2deg}75%{rotate:2.4deg}}@keyframes bt-breathe{0%,to{scale:1}50%{scale:1.03}}@keyframes bt-drift{0%{transform:translate(0,0)}to{transform:translate(16px,-6px)}}@media (prefers-reduced-motion:reduce){.bt-cluster,.bt-swoosh,.bt-stem,.bt-leaf,.bt-bud,.bt-rose,.bt-petal,.hero-divider-rose{animation:none}.bt-stem{stroke-dashoffset:0}.bt-leaf,.bt-bud,.bt-rose{opacity:1;transform:none}}@media (max-width:1100px){.bt-cluster--left{width:min(46vw,720px)}.bt-cluster--right{width:min(30vw,480px)}}@media (max-width:720px){.bt-cluster--right,.bt-swoosh--right{display:none}.bt-cluster--left{width:78vw}.bt-swoosh--left{width:92vw}.home-hero{min-height:0;padding-bottom:calc(42.12vw + 20px)}}.title-flare{pointer-events:none;mix-blend-mode:screen;opacity:0;transition:opacity .8s ease-out;position:absolute}.title-flare[data-active=true]{opacity:1}@media (prefers-reduced-motion:reduce){.title-flare{display:none}}.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(--theme-leaf);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(--theme-leaf);box-shadow:0 8px 28px color-mix(in srgb, var(--theme-leaf) 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(--theme-accent-deep);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(--theme-leaf);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(--theme-leaf);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(--theme-leaf) 24%, var(--border));background:color-mix(in srgb, var(--theme-leaf) 5%, var(--surface));height:100%;box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--theme-leaf) 8%, transparent), 0 2px 12px color-mix(in srgb, var(--theme-leaf) 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(--theme-leaf) 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(--theme-leaf) 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(--theme-leaf);box-shadow:0 8px 28px color-mix(in srgb, var(--theme-leaf) 26%, transparent)}.map-location-chip.is-active{border-color:color-mix(in srgb, var(--theme-accent) 55%, var(--theme-leaf));background:color-mix(in srgb, var(--theme-accent) 6%, var(--surface));box-shadow:0 4px 16px color-mix(in srgb, var(--theme-leaf) 14%, transparent), 0 0 10px color-mix(in srgb, var(--theme-accent) 18%, transparent)}.map-location-chip.is-active .map-location-label,.map-location-chip.is-tracing .map-location-label{color:var(--theme-accent)}.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(--theme-leaf) 22%, var(--border));background:color-mix(in srgb, var(--theme-leaf) 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(--theme-leaf);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(--theme-leaf);box-shadow:0 6px 20px color-mix(in srgb, var(--theme-leaf) 20%, transparent)}.map-location-person-chip:hover:not(:disabled):not(.is-tracing) .map-location-person-name{color:var(--theme-leaf-deep)}.map-location-person-chip.is-tracing .map-location-person-name{color:var(--theme-accent)}.map-location-person-name{white-space:nowrap;color:var(--theme-leaf);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(--theme-leaf);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(--theme-leaf) 28%, var(--border));background:color-mix(in srgb, var(--theme-leaf) 6%, var(--surface));color:var(--theme-leaf);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(--theme-leaf);box-shadow:0 8px 28px color-mix(in srgb, var(--theme-leaf) 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(--theme-accent)}.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(--theme-accent);border-color:#0000}.calendar-filter-chip:hover:not(:disabled):not(.is-tracing):not(.is-active){border-color:var(--theme-leaf);box-shadow:0 8px 28px color-mix(in srgb, var(--theme-leaf) 26%, transparent);color:var(--theme-leaf)}.calendar-filter-chip.is-active{border-color:color-mix(in srgb, var(--theme-accent) 55%, var(--theme-leaf));background:color-mix(in srgb, var(--theme-accent) 6%, var(--surface));color:var(--theme-leaf-deep);box-shadow:0 4px 16px color-mix(in srgb, var(--theme-leaf) 14%, transparent), 0 0 10px color-mix(in srgb, var(--theme-accent) 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(--theme-leaf);margin-bottom:8px;font-size:10px;font-weight:500}.calendar-month-card{border-color:color-mix(in srgb, var(--theme-accent) 50%, var(--border));background:color-mix(in srgb, var(--theme-leaf) 3%, var(--surface));box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--theme-accent) 12%, transparent), 0 2px 12px color-mix(in srgb, var(--theme-leaf) 6%, transparent);overflow:hidden}.calendar-event-row{border:none;border-bottom:1px solid color-mix(in srgb, var(--theme-accent) 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(--theme-accent) 6%, var(--surface))}.calendar-event-row:hover:not(:disabled):not(.is-tracing){background:color-mix(in srgb, var(--theme-leaf) 5%, var(--surface))}.editor-occasion{margin-top:10px;display:block}.editor-occasion-label{color:var(--text-3);margin-bottom:4px;font-size:12px;display:block}.calendar-event-row .gold-border-trace{width:100%;height:calc(100% + 1px);inset:0 auto auto 0}.calendar-event-row:not(:first-child) .gold-border-trace{height:calc(100% + 2px);top:-1px}.calendar-event-row--last .gold-border-trace{height:100%}.calendar-event-row--last:not(:first-child) .gold-border-trace{height:calc(100% + 1px)}.calendar-event-day{width:22px;color:var(--theme-leaf);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(--theme-accent)}.calendar-event-badge{flex-shrink:0}.calendar-event-badge--birthday{background:color-mix(in srgb, var(--theme-leaf) 10%, var(--surface));color:var(--theme-leaf);border-color:color-mix(in srgb, var(--theme-leaf) 38%, transparent)}.calendar-event-badge--anniversary{background:color-mix(in srgb, var(--theme-accent) 12%, var(--surface));color:var(--theme-accent);border-color:color-mix(in srgb, var(--theme-accent) 42%, transparent)}.calendar-event-badge--jubilee{background:var(--theme-accent);color:var(--theme-ground);border-color:var(--theme-accent)}.calendar-event-badge--memorial{background:color-mix(in srgb, var(--theme-leaf-deep) 7%, var(--surface));color:var(--theme-leaf-deep);border-color:color-mix(in srgb, var(--theme-leaf-deep) 32%, transparent)}
