@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2c55a0e60120577a-s.0bjc5tiuqdqro.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/9c72aa0f40e4eef8-s.0m6w47a4e5dy9.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/ad66f9afd8947f86-s.11u06r12fd6v_.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/5476f68d60460930-s.0wxq9webf.ew4.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2bbe8d2671613f1f-s.067x_6k0k23tk.woff2)format("woff2");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:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/1bffadaabf893a1e-s.16ipb6fqu393i.woff2)format("woff2");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:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2)format("woff2");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:Inter Fallback;src:local(Arial);ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.0%;size-adjust:107.12%}.inter_19e33a27-module__t5xxta__className{font-family:Inter,Inter Fallback;font-style:normal}.inter_19e33a27-module__t5xxta__variable{--font-sans:"Inter", "Inter Fallback"}
@font-face{font-family:Playfair Display;font-style:normal;font-weight:400 900;font-display:swap;src:url(../media/65c558afe41e89d6-s.113htgw8u-emy.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Playfair Display;font-style:normal;font-weight:400 900;font-display:swap;src:url(../media/14e23f9b59180572-s.08.c8psu~gif9.woff2)format("woff2");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:Playfair Display;font-style:normal;font-weight:400 900;font-display:swap;src:url(../media/b49b0d9b851e4899-s.0yfy_qj1.2qn0.woff2)format("woff2");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:Playfair Display;font-style:normal;font-weight:400 900;font-display:swap;src:url(../media/2a65768255d6b625-s.p.14by5b4al-y~f.woff2)format("woff2");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:Playfair Display Fallback;src:local(Times New Roman);ascent-override:97.25%;descent-override:22.56%;line-gap-override:0.0%;size-adjust:111.26%}.playfair_display_fe2dccc6-module__Medt5a__className{font-family:Playfair Display,Playfair Display Fallback;font-style:normal}.playfair_display_fe2dccc6-module__Medt5a__variable{--font-heading:"Playfair Display", "Playfair Display Fallback"}
:root{--primary:#d4a644;--primary-hover:#e0b556;--primary-soft:#d4a64424;--accent:#d4a644;--error:#e5484d;--success:#30a46c}[data-theme=dark]{--background:#0e0c09;--foreground:#f5efe2;--surface:#1a1610b8;--surface-raised:#241e15d9;--surface-border:#d4a64429;--surface-border-strong:#d4a64473;--timeline-line:linear-gradient(to bottom, transparent, #d4a64480 8%, #d4a64480 92%, transparent);--text-muted:#f5efe29e;--input-bg:#0e0c0999;--input-border:#f5efe22e;--btn-primary-text:#1c1405;--ambient:radial-gradient(1000px 640px at 88% -12%, #d4a6441f, transparent 62%), radial-gradient(800px 560px at -12% 28%, #9646231a, transparent 60%), radial-gradient(900px 760px at 52% 112%, #50346e1f, transparent 62%);--time-gradient:linear-gradient(to bottom, #d4a64412 0%, #d4a64400 26%, #50346e00 68%, #50346e21 100%)}[data-theme=light]{--background:#faf6ed;--foreground:#2b2316;--surface:#fffcf5c7;--surface-raised:#ffffffeb;--surface-border:#a67c2938;--surface-border-strong:#a67c298c;--timeline-line:linear-gradient(to bottom, transparent, #a67c2973 8%, #a67c2973 92%, transparent);--text-muted:#2b23169e;--input-bg:#ffffffd9;--input-border:#2b231638;--primary:#a87b1f;--primary-hover:#8f6716;--primary-soft:#a87b1f1f;--accent:#a87b1f;--btn-primary-text:#fffdf6;--ambient:radial-gradient(1000px 640px at 88% -12%, #d4a64433, transparent 62%), radial-gradient(800px 560px at -12% 28%, #d686561f, transparent 60%), radial-gradient(900px 760px at 52% 112%, #7a60b41a, transparent 62%);--time-gradient:linear-gradient(to bottom, #d4a6441a 0%, #d4a64400 28%, #7a60b400 66%, #7a60b41a 100%)}[data-palette=sage][data-theme=dark]{--primary:#a6b487;--primary-hover:#b8c69b;--primary-soft:#a6b48724;--accent:#a6b487;--surface-border:#a6b48729;--surface-border-strong:#a6b48773;--timeline-line:linear-gradient(to bottom, transparent, #a6b48780 8%, #a6b48780 92%, transparent);--ambient:radial-gradient(1000px 640px at 88% -12%, #a6b4871f, transparent 62%), radial-gradient(800px 560px at -12% 28%, #5a785f1a, transparent 60%), radial-gradient(900px 760px at 52% 112%, #3c5c6e1f, transparent 62%);--time-gradient:linear-gradient(to bottom, #a6b48712 0%, #a6b48700 26%, #3c5c6e00 68%, #3c5c6e21 100%)}[data-palette=sage][data-theme=light]{--primary:#6b7a4f;--primary-hover:#59673f;--primary-soft:#6b7a4f1f;--accent:#6b7a4f;--surface-border:#6b7a4f38;--surface-border-strong:#6b7a4f8c;--timeline-line:linear-gradient(to bottom, transparent, #6b7a4f73 8%, #6b7a4f73 92%, transparent);--ambient:radial-gradient(1000px 640px at 88% -12%, #8ca06e33, transparent 62%), radial-gradient(800px 560px at -12% 28%, #6e8c731f, transparent 60%), radial-gradient(900px 760px at 52% 112%, #5a788c1a, transparent 62%);--time-gradient:linear-gradient(to bottom, #8ca06e1a 0%, #8ca06e00 28%, #5a788c00 66%, #5a788c1a 100%)}[data-palette=bordeaux][data-theme=dark]{--primary:#c76b7c;--primary-hover:#d4818f;--primary-soft:#c76b7c24;--accent:#c76b7c;--surface-border:#c76b7c29;--surface-border-strong:#c76b7c70;--timeline-line:linear-gradient(to bottom, transparent, #c76b7c80 8%, #c76b7c80 92%, transparent);--ambient:radial-gradient(1000px 640px at 88% -12%, #c76b7c1f, transparent 62%), radial-gradient(800px 560px at -12% 28%, #7828371f, transparent 60%), radial-gradient(900px 760px at 52% 112%, #502d5a1f, transparent 62%);--time-gradient:linear-gradient(to bottom, #c76b7c12 0%, #c76b7c00 26%, #502d5a00 68%, #502d5a24 100%)}[data-palette=bordeaux][data-theme=light]{--primary:#9c3b4c;--primary-hover:#842f3f;--primary-soft:#9c3b4c1a;--accent:#9c3b4c;--surface-border:#9c3b4c33;--surface-border-strong:#9c3b4c80;--timeline-line:linear-gradient(to bottom, transparent, #9c3b4c73 8%, #9c3b4c73 92%, transparent);--ambient:radial-gradient(1000px 640px at 88% -12%, #be5a6e2e, transparent 62%), radial-gradient(800px 560px at -12% 28%, #963c4b1a, transparent 60%), radial-gradient(900px 760px at 52% 112%, #78508c1a, transparent 62%);--time-gradient:linear-gradient(to bottom, #be5a6e1a 0%, #be5a6e00 28%, #78508c00 66%, #78508c1a 100%)}[data-palette=azure][data-theme=dark]{--primary:#8ab0cf;--primary-hover:#9cc0db;--primary-soft:#8ab0cf24;--accent:#8ab0cf;--surface-border:#8ab0cf29;--surface-border-strong:#8ab0cf70;--timeline-line:linear-gradient(to bottom, transparent, #8ab0cf80 8%, #8ab0cf80 92%, transparent);--ambient:radial-gradient(1000px 640px at 88% -12%, #8ab0cf1f, transparent 62%), radial-gradient(800px 560px at -12% 28%, #3c64821f, transparent 60%), radial-gradient(900px 760px at 52% 112%, #4646781f, transparent 62%);--time-gradient:linear-gradient(to bottom, #8ab0cf12 0%, #8ab0cf00 26%, #46467800 68%, #46467821 100%)}[data-palette=azure][data-theme=light]{--primary:#3d6f96;--primary-hover:#335d7e;--primary-soft:#3d6f961a;--accent:#3d6f96;--surface-border:#3d6f9633;--surface-border-strong:#3d6f9680;--timeline-line:linear-gradient(to bottom, transparent, #3d6f9673 8%, #3d6f9673 92%, transparent);--ambient:radial-gradient(1000px 640px at 88% -12%, #5a8cb42e, transparent 62%), radial-gradient(800px 560px at -12% 28%, #466e961a, transparent 60%), radial-gradient(900px 760px at 52% 112%, #5a5a961a, transparent 62%);--time-gradient:linear-gradient(to bottom, #5a8cb41a 0%, #5a8cb400 28%, #5a5a9600 66%, #5a5a961a 100%)}[data-palette=amethyst][data-theme=dark]{--primary:#b49bd4;--primary-hover:#c2addf;--primary-soft:#b49bd424;--accent:#b49bd4;--surface-border:#b49bd429;--surface-border-strong:#b49bd470;--timeline-line:linear-gradient(to bottom, transparent, #b49bd480 8%, #b49bd480 92%, transparent);--ambient:radial-gradient(1000px 640px at 88% -12%, #b49bd41f, transparent 62%), radial-gradient(800px 560px at -12% 28%, #5f468c1f, transparent 60%), radial-gradient(900px 760px at 52% 112%, #78466e1f, transparent 62%);--time-gradient:linear-gradient(to bottom, #b49bd412 0%, #b49bd400 26%, #78466e00 68%, #78466e21 100%)}[data-palette=amethyst][data-theme=light]{--primary:#6f4f9c;--primary-hover:#5d3f86;--primary-soft:#6f4f9c1f;--accent:#6f4f9c;--surface-border:#6f4f9c33;--surface-border-strong:#6f4f9c80;--timeline-line:linear-gradient(to bottom, transparent, #6f4f9c73 8%, #6f4f9c73 92%, transparent);--ambient:radial-gradient(1000px 640px at 88% -12%, #9673c32e, transparent 62%), radial-gradient(800px 560px at -12% 28%, #6e50a01a, transparent 60%), radial-gradient(900px 760px at 52% 112%, #a05a821a, transparent 62%);--time-gradient:linear-gradient(to bottom, #9673c31a 0%, #9673c300 28%, #a05a8200 66%, #a05a821a 100%)}[data-palette=copper][data-theme=dark]{--primary:#d69368;--primary-hover:#e0a67e;--primary-soft:#d6936824;--accent:#d69368;--surface-border:#d6936829;--surface-border-strong:#d6936870;--timeline-line:linear-gradient(to bottom, transparent, #d6936880 8%, #d6936880 92%, transparent);--ambient:radial-gradient(1000px 640px at 88% -12%, #d693681f, transparent 62%), radial-gradient(800px 560px at -12% 28%, #96502d1f, transparent 60%), radial-gradient(900px 760px at 52% 112%, #7846281f, transparent 62%);--time-gradient:linear-gradient(to bottom, #d6936812 0%, #d6936800 26%, #78462800 68%, #78462821 100%)}[data-palette=copper][data-theme=light]{--primary:#b25f33;--primary-hover:#984f28;--primary-soft:#b25f331f;--accent:#b25f33;--surface-border:#b25f3333;--surface-border-strong:#b25f3380;--timeline-line:linear-gradient(to bottom, transparent, #b25f3373 8%, #b25f3373 92%, transparent);--ambient:radial-gradient(1000px 640px at 88% -12%, #cd82502e, transparent 62%), radial-gradient(800px 560px at -12% 28%, #aa5a321a, transparent 60%), radial-gradient(900px 760px at 52% 112%, #8c55371a, transparent 62%);--time-gradient:linear-gradient(to bottom, #cd82501a 0%, #cd825000 28%, #8c553700 66%, #8c55371a 100%)}[data-palette=teal][data-theme=dark]{--primary:#7fc0b5;--primary-hover:#93cdc3;--primary-soft:#7fc0b524;--accent:#7fc0b5;--surface-border:#7fc0b529;--surface-border-strong:#7fc0b570;--timeline-line:linear-gradient(to bottom, transparent, #7fc0b580 8%, #7fc0b580 92%, transparent);--ambient:radial-gradient(1000px 640px at 88% -12%, #7fc0b51f, transparent 62%), radial-gradient(800px 560px at -12% 28%, #286e641f, transparent 60%), radial-gradient(900px 760px at 52% 112%, #2850641f, transparent 62%);--time-gradient:linear-gradient(to bottom, #7fc0b512 0%, #7fc0b500 26%, #28506400 68%, #28506421 100%)}[data-palette=teal][data-theme=light]{--primary:#2f7d6e;--primary-hover:#266558;--primary-soft:#2f7d6e1f;--accent:#2f7d6e;--surface-border:#2f7d6e33;--surface-border-strong:#2f7d6e80;--timeline-line:linear-gradient(to bottom, transparent, #2f7d6e73 8%, #2f7d6e73 92%, transparent);--ambient:radial-gradient(1000px 640px at 88% -12%, #469b8c2e, transparent 62%), radial-gradient(800px 560px at -12% 28%, #32786e1a, transparent 60%), radial-gradient(900px 760px at 52% 112%, #3c64821a, transparent 62%);--time-gradient:linear-gradient(to bottom, #469b8c1a 0%, #469b8c00 28%, #3c648200 66%, #3c64821a 100%)}[data-palette=graphite][data-theme=dark]{--primary:#b8bcc6;--primary-hover:#cacdd6;--primary-soft:#b8bcc624;--accent:#b8bcc6;--surface-border:#b8bcc629;--surface-border-strong:#b8bcc66b;--timeline-line:linear-gradient(to bottom, transparent, #b8bcc680 8%, #b8bcc680 92%, transparent);--ambient:radial-gradient(1000px 640px at 88% -12%, #b8bcc61a, transparent 62%), radial-gradient(800px 560px at -12% 28%, #5a64781f, transparent 60%), radial-gradient(900px 760px at 52% 112%, #4650641f, transparent 62%);--time-gradient:linear-gradient(to bottom, #b8bcc60f 0%, #b8bcc600 26%, #46506400 68%, #4650641f 100%)}[data-palette=graphite][data-theme=light]{--primary:#5a606e;--primary-hover:#4a505c;--primary-soft:#5a606e1a;--accent:#5a606e;--surface-border:#5a606e33;--surface-border-strong:#5a606e80;--timeline-line:linear-gradient(to bottom, transparent, #5a606e73 8%, #5a606e73 92%, transparent);--ambient:radial-gradient(1000px 640px at 88% -12%, #78829629, transparent 62%), radial-gradient(800px 560px at -12% 28%, #646e821a, transparent 60%), radial-gradient(900px 760px at 52% 112%, #5a5f731a, transparent 62%);--time-gradient:linear-gradient(to bottom, #7882961a 0%, #78829600 28%, #5a5f7300 66%, #5a5f731a 100%)}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--background);background-image:var(--time-gradient), var(--ambient);color:var(--foreground);background-attachment:fixed;min-height:100vh;transition:background-color .3s,color .3s;overflow-x:hidden}.growing-vine{z-index:-1;pointer-events:none;color:var(--primary);--leaf:color-mix(in srgb, var(--primary) 78%, #43a24c 22%);--blossom:color-mix(in srgb, var(--primary) 45%, #e89aa8 55%);opacity:.22;position:absolute;top:0;left:0;overflow:visible}[data-theme=light] .growing-vine{opacity:.2}.ararat{z-index:-1;pointer-events:none;width:100%;height:clamp(150px,24vh,300px);color:var(--primary);opacity:.14;position:fixed;bottom:0;left:0}[data-theme=light] .ararat{opacity:.12}.ararat-front{fill:url(#ararat-fade)}.ararat-back{fill:currentColor;opacity:.45}.ararat-hill{fill:currentColor;opacity:.9}.ararat-snow{fill:#f3ead2;opacity:.45}.ararat-church{fill:currentColor}.sky{z-index:-1;pointer-events:none;position:fixed;inset:0;overflow:hidden}.sky-body{opacity:0;will-change:transform, opacity;width:64px;height:64px;animation:sky-arc var(--sky-period,240s) linear infinite;border-radius:50%;position:absolute;top:0;left:0;transform:translate(calc(-6vw - 50%),calc(94vh - 50%))}.sky-sun{background:radial-gradient(circle at 38% 35%,#ffe7a8,#f1b84d 55%,#d99a2b 100%);box-shadow:0 0 40px 12px #f0be5a4d}.sky-moon{width:52px;height:52px;animation-delay:calc(var(--sky-period,240s) / -2);background:radial-gradient(circle at 38% 35%,#fdfbf3,#d8d5c7 60%,#b7b4a6 100%);box-shadow:0 0 28px 8px #dee0e840}@keyframes sky-arc{0%{opacity:0;transform:translate(calc(-6vw - 50%),calc(94vh - 50%))}4%{opacity:.6}12.5%{transform:translate(calc(25vw - 50%),calc(54vh - 50%))}25%{transform:translate(calc(50vw - 50%),calc(34vh - 50%))}37.5%{transform:translate(calc(75vw - 50%),calc(54vh - 50%))}46%{opacity:.6}50%{opacity:0;transform:translate(calc(106vw - 50%),calc(94vh - 50%))}to{opacity:0;transform:translate(calc(106vw - 50%),calc(94vh - 50%))}}.sky-stars{opacity:0;animation:sky-night var(--sky-period,240s) linear infinite;position:absolute;inset:0}.sky-star{animation:sky-twinkle var(--tw,5s) ease-in-out infinite;background:#fdf6e3;border-radius:50%;position:absolute;box-shadow:0 0 2px #fdf6e340}@keyframes sky-night{0%,46%{opacity:0}54%,96%{opacity:.22}to{opacity:0}}@keyframes sky-twinkle{0%,to{opacity:.35;transform:scale(.95)}50%{opacity:.8;transform:scale(1.05)}}.sky-comet{opacity:0;will-change:transform, opacity;width:140px;height:2px;transform:translate(var(--c-x0,-14vw), var(--c-y0,6vh)) rotate(var(--c-rot,24deg));background:linear-gradient(90deg,#fdf6e300 0%,#fdf6e38c 100%);border-radius:2px;position:absolute;top:0;left:0}.sky-comet:after{content:"";background:#fffaf0;border-radius:50%;width:4px;height:4px;margin-top:-2px;position:absolute;top:50%;right:-2px;box-shadow:0 0 6px 2px #fffaf0b3}@keyframes comet-fly{0%{opacity:0;transform:translate(var(--c-x0), var(--c-y0)) rotate(var(--c-rot))}12%{opacity:.85}85%{opacity:.85}to{opacity:0;transform:translate(var(--c-x1), var(--c-y1)) rotate(var(--c-rot))}}:root[data-sky=slow]{--sky-period:480s}:root[data-sky=medium]{--sky-period:240s}:root[data-sky=fast]{--sky-period:120s}:root[data-sky=off] .sky{display:none}@media (prefers-reduced-motion:reduce){.sky{display:none}}.vine-canopy{transform-box:view-box;transform-origin:80px 0;will-change:transform;animation:16s ease-in-out infinite vine-sway}.growing-vine .vine-trunk,.growing-vine .vine-stem{fill:none;stroke:currentColor;stroke-linecap:round;stroke-dasharray:100;stroke-dashoffset:0}.growing-vine .vine-trunk{stroke-width:2px;animation:6s ease-out both vine-draw}.growing-vine .vine-stem{stroke-width:1.1px;animation:1.8s ease-out both vine-draw}.growing-vine .vine-leaf{fill:var(--leaf)}.growing-vine .vine-leaf-o{fill:none;stroke:var(--leaf);stroke-width:1.1px}.growing-vine .vine-blossom{fill:var(--blossom)}.growing-vine .vine-blossom-heart{fill:var(--primary)}.growing-vine .vine-appear{transform-box:fill-box;transform-origin:0%;animation:vine-appear 1.5s ease both, vine-leaf-flutter var(--fdur,6s) ease-in-out infinite}.vine-branch{transform-box:view-box;animation:9s ease-in-out infinite vine-wind}.growing-vine .vine-bloom{transform-box:fill-box;transform-origin:50%;animation:2.6s both vine-bloom}@keyframes vine-draw{0%{stroke-dashoffset:100px}to{stroke-dashoffset:0}}@keyframes vine-appear{0%{opacity:0}to{opacity:1}}@keyframes vine-bloom{0%{opacity:0;transform:scale(0)}55%{opacity:1;transform:scale(1.12)}to{opacity:1;transform:scale(1)}}@keyframes vine-sway{0%,to{transform:translateX(calc(-5px * var(--wind-scale,1) * var(--gust,1))) rotate(calc(-.15deg * var(--wind-scale,1) * var(--gust,1)))}50%{transform:translateX(calc(5px * var(--wind-scale,1) * var(--gust,1))) rotate(calc(.15deg * var(--wind-scale,1) * var(--gust,1)))}}@keyframes vine-wind{0%,to{transform:rotate(calc(-1 * var(--amp,.8deg) * var(--wind-scale,1) * var(--gust,1)))}50%{transform:rotate(calc(var(--amp,.8deg) * var(--wind-scale,1) * var(--gust,1)))}}@keyframes vine-leaf-flutter{0%,to{transform:rotate(calc(-3.5deg * var(--wind-scale,1) * var(--gust,1)))}50%{transform:rotate(calc(3.5deg * var(--wind-scale,1) * var(--gust,1)))}}:root[data-motion=lively]{--wind-scale:1.9}:root[data-motion=off] .vine-canopy,:root[data-motion=off] .vine-branch{animation:none}:root[data-motion=off] .growing-vine .vine-trunk,:root[data-motion=off] .growing-vine .vine-stem{stroke-dashoffset:0;animation:none}:root[data-motion=off] .growing-vine .vine-appear,:root[data-motion=off] .growing-vine .vine-bloom{opacity:1;animation:none;transform:none}:root[data-motion=off] .sky-body,:root[data-motion=off] .sky-stars,:root[data-motion=off] .sky-star,:root[data-motion=off] .sky-comet{animation:none}:root[data-timewash=off] body{background-image:var(--ambient)}@media (prefers-reduced-motion:reduce){.vine-canopy,.vine-branch{animation:none}.growing-vine .vine-trunk,.growing-vine .vine-stem{stroke-dashoffset:0;animation:none}.growing-vine .vine-appear,.growing-vine .vine-bloom{opacity:1;animation:none;transform:none}.sky-body,.sky-stars,.sky-star,.sky-comet{animation:none}}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading), Georgia, serif;letter-spacing:.005em;margin-bottom:.5em;font-weight:600;line-height:1.15}h1{font-size:3rem}h2{font-size:2.25rem}h3{font-size:1.6rem}.font-sans{font-family:var(--font-sans), system-ui, sans-serif}a{color:inherit;text-decoration:none;transition:opacity .2s}a:hover{opacity:.8}.page-subtitle{color:var(--text-muted);font-size:1.05rem;line-height:1.6}.page-head h1:after,.settings-header h1:after{content:"";background:linear-gradient(90deg, var(--primary), transparent);border-radius:2px;width:64px;height:3px;margin-top:.75rem;display:block}.app-container{min-height:100vh;padding-top:5rem}.global-nav{z-index:100;border-bottom:1px solid var(--surface-border);-webkit-backdrop-filter:blur(18px)saturate(140%);justify-content:space-between;align-items:center;height:4.5rem;padding:0 3rem;display:flex;position:fixed;top:0;left:0;right:0}.global-nav.glass{background:color-mix(in srgb, var(--background) 98%, transparent)}.nav-brand{font-family:var(--font-heading), Georgia, serif;letter-spacing:.01em;align-items:center;gap:.75rem;font-size:1.4rem;font-weight:600;display:flex}.nav-brand-link{align-items:center;gap:.75rem;display:flex}.nav-logo{filter:drop-shadow(0 2px 6px #00000040);width:auto;height:46px}.nav-logo-dark,[data-theme=dark] .nav-logo-light{display:none}[data-theme=dark] .nav-logo-dark{display:inline-block}.nav-links{gap:2rem;display:flex}.nav-link{border-radius:999px;align-items:center;gap:.5rem;padding:.4rem .75rem;font-size:.95rem;font-weight:500;transition:background .2s;display:flex}.nav-link:hover{background:var(--primary-soft);opacity:1}.nav-user{align-items:center;gap:1rem;font-size:.9rem;display:flex}.nav-link.active{background:var(--primary-soft)}.nav-toggle{border:1px solid var(--surface-border);width:2.6rem;height:2.6rem;color:var(--foreground);cursor:pointer;background:0 0;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;display:none}.nav-scrim{display:none}.avatar{background:linear-gradient(135deg, var(--primary), var(--primary-hover));width:34px;height:34px;color:var(--btn-primary-text);font-weight:700;font-family:var(--font-heading), Georgia, serif;border:2px solid var(--surface-border-strong);border-radius:50%;justify-content:center;align-items:center;display:flex}.avatar-img{object-fit:cover;background:var(--surface-raised)}.avatar-lg{width:96px;height:96px;font-size:2rem}.avatar-xl{width:112px;height:112px;box-shadow:0 0 0 4px var(--primary-soft), 0 8px 24px #00000040;font-size:2.5rem}.avatar-uploader{flex-wrap:wrap;align-items:center;gap:1.75rem;display:flex}.avatar-frame{cursor:pointer;background:0 0;border:none;border-radius:50%;padding:0;line-height:0;position:relative}.avatar-frame:disabled{cursor:wait}.avatar-overlay{color:#fff;opacity:0;background:#00000073;border-radius:50%;justify-content:center;align-items:center;transition:opacity .2s;display:flex;position:absolute;inset:0}.avatar-frame:hover .avatar-overlay,.avatar-frame:disabled .avatar-overlay{opacity:1}.avatar-crop-modal{text-align:center;flex-direction:column;align-items:center;max-width:380px;display:flex}.avatar-crop-frame{cursor:grab;touch-action:none;box-shadow:0 0 0 4px var(--primary-soft), 0 8px 24px #00000040;background:#00000040;border-radius:50%;margin:1rem auto;position:relative;overflow:hidden}.avatar-crop-frame:active{cursor:grabbing}.avatar-crop-frame img{-webkit-user-select:none;user-select:none;max-width:none;position:absolute;top:50%;left:50%}.avatar-crop-zoom{width:100%;max-width:280px;color:var(--text-muted);align-items:center;gap:.75rem;margin:.5rem auto 1.25rem;display:flex}.avatar-crop-zoom input[type=range]{accent-color:var(--primary);flex:1}.avatar-crop-actions{justify-content:center;gap:.75rem;display:flex}.avatar-uploader-info{flex-direction:column;align-items:flex-start;gap:.75rem;max-width:320px;display:flex}.user-menu{position:relative}.user-menu-trigger{color:var(--foreground);cursor:pointer;background:0 0;border:none;border-radius:999px;align-items:center;gap:.6rem;padding:.35rem .5rem;font-family:inherit;font-size:.9rem;font-weight:500;transition:background .2s;display:flex}.user-menu-trigger:hover{background:var(--primary-soft)}.user-menu-chevron{color:var(--text-muted);transition:transform .2s}.user-menu-chevron.open{transform:rotate(180deg)}.user-menu-dropdown{background:var(--surface-raised);z-index:200;border-radius:14px;flex-direction:column;min-width:190px;padding:.4rem;animation:.18s cubic-bezier(.16,1,.3,1) menu-pop;display:flex;position:absolute;top:calc(100% + .6rem);right:0;box-shadow:0 16px 40px #0000004d}@keyframes menu-pop{0%{opacity:0;transform:translateY(-6px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.user-menu-item{width:100%;color:var(--foreground);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:9px;align-items:center;gap:.6rem;padding:.6rem .75rem;font-family:inherit;font-size:.9rem;font-weight:500;transition:background .2s;display:flex}.user-menu-item:hover{background:var(--primary-soft);opacity:1}.auth-divider{color:var(--text-muted);align-items:center;gap:1rem;margin:1.5rem 0;font-size:.85rem;display:flex}.auth-divider:before,.auth-divider:after{content:"";background:var(--surface-border);flex:1;height:1px}.theme-toggle{background:var(--primary-soft);border-radius:20px;gap:2px;padding:4px;display:flex}.theme-btn{color:var(--foreground);cursor:pointer;opacity:.5;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;transition:all .2s;display:flex}.theme-btn.active{background:var(--background);opacity:1;box-shadow:0 2px 5px #0000001a}.glass{background:var(--surface);-webkit-backdrop-filter:blur(16px);border:1px solid var(--surface-border);border-radius:16px;box-shadow:inset 0 1px #ffffff0a}.btn{font-weight:600;font-family:var(--font-sans), system-ui, sans-serif;cursor:pointer;letter-spacing:-.01em;border:none;border-radius:10px;justify-content:center;align-items:center;gap:.5rem;padding:.75rem 1.5rem;font-size:.95rem;transition:all .2s;display:inline-flex}.btn-primary{background:linear-gradient(135deg, var(--primary), var(--primary-hover));color:var(--btn-primary-text);border:1px solid #0000;box-shadow:0 4px 14px #d4a64440}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 6px 20px #d4a64459}.btn-primary:disabled{opacity:.6;cursor:wait;transform:none}.btn-secondary{color:var(--foreground);border:1px solid var(--surface-border-strong);background:0 0}.btn-secondary:hover{background:var(--primary-soft)}.btn-secondary:disabled{opacity:.45;cursor:not-allowed;background:0 0}.btn-ghost{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:8px;align-items:center;gap:.45rem;padding:.45rem .75rem;font-family:inherit;font-size:.88rem;font-weight:500;transition:all .2s;display:inline-flex}.btn-ghost:hover{color:var(--foreground);background:var(--primary-soft)}.btn-danger{background:var(--error);color:#fff;border:1px solid #0000;padding:.45rem .9rem;font-size:.88rem}.btn-danger:disabled{opacity:.6;cursor:wait}.confirm-delete{flex-wrap:wrap;align-items:center;gap:.6rem;display:inline-flex}.confirm-delete-text{color:var(--text-muted);font-size:.88rem}.btn-icon{color:var(--foreground);cursor:pointer;opacity:.7;background:0 0;border:none;justify-content:center;align-items:center;padding:.5rem;transition:opacity .2s;display:flex}.btn-icon:hover{opacity:1}.input-group{margin-bottom:1.5rem}.input-label{color:var(--text-muted);letter-spacing:.02em;text-transform:uppercase;margin-bottom:.5rem;font-size:.75rem;font-weight:500;display:block}.input-field{background:var(--input-bg);border:1px solid var(--input-border);width:100%;color:var(--foreground);border-radius:10px;padding:.875rem 1rem;font-family:inherit;font-size:1rem;transition:all .2s}.input-field:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft);outline:none}.input-field:disabled{opacity:.55;cursor:not-allowed}.form-error{color:var(--error);margin-top:1rem;font-size:.92rem}.form-success{color:var(--success);font-size:.92rem;font-weight:500}.role-badge{background:var(--primary-soft);color:var(--primary);border:1px solid var(--surface-border);letter-spacing:.08em;border-radius:999px;align-items:center;padding:.45rem 1rem;font-size:.8rem;font-weight:700;display:inline-flex}.spin{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.settings-page{max-width:820px}.settings-header{margin-bottom:2.5rem}.settings-sections{flex-direction:column;gap:1.75rem;display:flex}.settings-card{border-radius:20px;padding:2.25rem;transition:border-color .3s}.settings-card:hover{border-color:var(--surface-border-strong)}.settings-card-head{border-bottom:1px solid var(--surface-border);align-items:flex-start;gap:1rem;margin-bottom:1.75rem;padding-bottom:1.25rem;display:flex}.settings-card-head h3{margin-bottom:.25rem}.section-icon{background:var(--primary-soft);width:46px;height:46px;color:var(--primary);border:1px solid var(--surface-border);border-radius:13px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.settings-hint{color:var(--text-muted);font-size:.92rem;line-height:1.55}.profile-form-grid{grid-template-columns:1fr 1fr;gap:1.25rem;margin-bottom:.5rem;display:grid}.profile-form-grid .input-group{margin-bottom:0}.profile-form-footer{align-items:center;gap:1rem;margin-top:1.5rem;display:flex}@media (max-width:640px){.profile-form-grid{grid-template-columns:1fr}}.tree-panel{padding:3rem}.member-search{max-width:380px;margin-bottom:1.5rem;position:relative}.member-search svg{color:var(--text-muted);pointer-events:none;position:absolute;top:50%;left:.9rem;transform:translateY(-50%)}.member-search input{width:100%;padding-left:2.6rem}.member-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:2rem;display:grid}.member-card{text-align:center;cursor:pointer;padding:2rem;transition:all .35s cubic-bezier(.16,1,.3,1)}.member-card:hover{border-color:var(--surface-border-strong);transform:translateY(-8px);box-shadow:0 16px 36px #0000004d}.member-avatar{background:var(--primary-soft);border:2px solid var(--primary);width:116px;height:116px;box-shadow:0 0 24px var(--primary-soft);border-radius:50%;justify-content:center;align-items:center;margin:0 auto 1.5rem;display:flex;overflow:hidden}.member-avatar img{object-fit:cover;width:100%;height:100%}.member-avatar span{color:var(--primary);font-size:2.5rem;font-family:var(--font-heading), Georgia, serif}.member-name{margin:.5rem 0;font-size:1.35rem}.member-dates{color:var(--text-muted);letter-spacing:.05em;font-size:.9rem}.member-relations{border-top:1px solid var(--surface-border);color:var(--primary);justify-content:center;gap:.75rem;margin-top:1rem;padding-top:1rem;font-size:.85rem;display:flex}.empty-state-icon{color:var(--primary);opacity:.55;margin:0 auto 1.5rem;display:block}.timeline-container{max-width:1200px;margin:0 auto;padding:4rem 2rem;position:relative}.timeline-line{background:var(--timeline-line);z-index:1;width:2px;height:calc(100% - 8rem);position:absolute;left:50%;transform:translate(-50%)}.events-list{z-index:2;flex-direction:column;gap:5rem;display:flex;position:relative}.timeline-node-container{opacity:0;justify-content:space-between;align-items:center;width:100%;animation:.6s cubic-bezier(.16,1,.3,1) forwards fade-in-up;display:flex;position:relative}@keyframes fade-in-up{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.timeline-node-container.left{flex-direction:row-reverse}.timeline-node-content{cursor:pointer;width:45%;padding:2rem;transition:transform .4s cubic-bezier(.16,1,.3,1),border-color .3s,box-shadow .3s}.timeline-node-content:hover{border-color:var(--surface-border-strong);transform:translateY(-8px);box-shadow:0 16px 36px #00000040}.timeline-circle{background:linear-gradient(135deg, var(--primary), var(--primary-hover));z-index:3;width:16px;height:16px;box-shadow:0 0 0 6px var(--background), 0 0 16px var(--primary-soft);border-radius:50%;transition:transform .3s;position:absolute;left:50%;transform:translate(-50%)}.timeline-node-container:hover .timeline-circle{transform:translate(-50%)scale(1.3)}.timeline-icon{z-index:3;background:linear-gradient(135deg, var(--primary), var(--primary-hover));width:36px;height:36px;color:var(--btn-primary-text);box-shadow:0 0 0 6px var(--background), 0 0 16px var(--primary-soft);border-radius:50%;justify-content:center;align-items:center;transition:transform .3s;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.timeline-node-container:hover .timeline-icon{transform:translate(-50%,-50%)scale(1.15)}.timeline-journey-end{background:linear-gradient(135deg, var(--primary), var(--primary-hover));width:28px;height:28px;color:var(--btn-primary-text);box-shadow:0 0 12px var(--primary-soft);border-radius:50%;justify-content:center;align-items:center;transition:transform .3s;display:flex}.timeline-node-container:hover .timeline-journey-end{transform:scale(1.15)}.timeline-journey{z-index:3;background:var(--background);box-shadow:0 0 0 6px var(--background);border-radius:999px;flex-direction:column;align-items:center;gap:2.4rem;padding:8px 0;display:flex;position:absolute;left:50%;transform:translate(-50%)}.timeline-journey:before{content:"";background:linear-gradient(to bottom, var(--primary), var(--primary-hover));z-index:-1;width:2px;position:absolute;top:10px;bottom:10px}.timeline-journey-stop{justify-content:center;align-items:center;width:28px;display:flex;position:relative}.timeline-journey-label{white-space:nowrap;pointer-events:none;flex-direction:column;line-height:1.2;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.timeline-journey.labels-left .timeline-journey-label{text-align:right;align-items:flex-end;right:44px}.timeline-journey.labels-right .timeline-journey-label{text-align:left;align-items:flex-start;left:44px}.timeline-journey-place{color:var(--foreground);font-size:.85rem;font-weight:600}.timeline-journey-when{letter-spacing:.02em;color:var(--primary);font-size:.72rem;font-family:var(--font-sans), system-ui, sans-serif;font-weight:600}.timeline-journey-dot{background:linear-gradient(135deg, var(--primary), var(--primary-hover));width:10px;height:10px;box-shadow:0 0 10px var(--primary-soft);border-radius:50%;transition:transform .3s}.timeline-journey-dot.is-end{border:2px solid var(--background);border-radius:50% 50% 50% 0;width:16px;height:16px;transform:rotate(-45deg)}.timeline-node-container:hover .timeline-journey-dot{transform:scale(1.25)}.timeline-node-container:hover .timeline-journey-dot.is-end{transform:rotate(-45deg)scale(1.2)}.timeline-year{font-family:var(--font-sans), system-ui, sans-serif;letter-spacing:.04em;color:var(--primary);align-items:center;gap:.5rem;margin-bottom:.5rem;font-size:.95rem;font-weight:600;display:flex}.timeline-title{color:var(--foreground);margin-bottom:.75rem;font-size:1.5rem}.timeline-title-row{align-items:center;gap:.75rem;display:flex}.timeline-people{flex-shrink:0;display:flex}.timeline-person-group{flex-direction:column;align-items:center;display:flex}.timeline-person-group+.timeline-person-group{margin-left:-10px}.timeline-person{background:var(--primary-soft);width:40px;height:40px;color:var(--primary);border:2px solid var(--surface-border-strong);border-radius:50%;justify-content:center;align-items:center;font-size:1rem;font-weight:600;display:flex;overflow:hidden;box-shadow:0 2px 8px #0003}.timeline-person img{object-fit:cover;width:100%;height:100%}.timeline-parents{margin-top:-8px;display:flex}.timeline-person-sm{width:26px;height:26px;font-size:.72rem}.timeline-parents .timeline-person+.timeline-person{margin-left:-8px}.timeline-cover{border:1px solid #ffffff0d;border-radius:8px;width:100%;height:220px;margin-top:1.25rem;position:relative;overflow:hidden}.timeline-cover .timeline-image{object-fit:cover;width:100%;height:100%;transition:transform .5s}.timeline-desc{color:var(--text-muted);font-size:.95rem;line-height:1.6}.event-hero{width:100%;height:420px;position:relative;overflow:hidden}.event-hero img{object-fit:cover;width:100%;height:100%}.event-hero-fade{background:linear-gradient(to top, var(--background), transparent);opacity:.9;height:150px;position:absolute;bottom:0;left:0;right:0}.event-meta{color:var(--primary);letter-spacing:.05em;text-transform:uppercase;align-items:center;gap:1.5rem;font-size:.95rem;font-weight:600;display:inline-flex}.event-meta span{align-items:center;gap:.45rem;display:inline-flex}.event-description{white-space:pre-wrap;letter-spacing:.01em;max-width:800px;margin:0 auto;font-size:1.15rem;line-height:1.8}.event-notes{background:var(--primary-soft);border:1px solid var(--surface-border);border-radius:.9rem;max-width:800px;margin:2rem auto 0;padding:1.25rem 1.5rem}.event-notes h3{align-items:center;gap:.5rem;margin:0 0 .5rem;font-size:1rem;display:inline-flex}.event-notes p{white-space:pre-wrap;color:var(--text-muted);margin:0;line-height:1.7}.media-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1.25rem;display:grid}.media-tile{border:1px solid var(--surface-border);border-radius:12px;height:180px;position:relative;overflow:hidden;box-shadow:0 4px 20px #0003}.media-tile img{object-fit:cover;width:100%;height:100%;transition:transform .4s}.media-tile:hover img{transform:scale(1.05)}.media-tile.is-cover{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-soft), 0 4px 20px #0003}.media-tile-actions{opacity:0;gap:.35rem;transition:opacity .2s;display:flex;position:absolute;top:.5rem;right:.5rem}.media-tile:hover .media-tile-actions,.media-tile-actions:focus-within{opacity:1}.media-tile-actions button,.media-tile-actions a{color:#fff;cursor:pointer;background:#000000a6;border:none;border-radius:8px;justify-content:center;align-items:center;width:30px;height:30px;transition:background .2s;display:flex}.media-tile-actions button:hover,.media-tile-actions a:hover{background:var(--primary);color:var(--btn-primary-text)}.media-tile-actions button.media-delete-armed,.media-tile-actions button.media-delete-armed:hover{background:var(--error);color:#fff}.cover-badge{background:var(--primary);color:var(--btn-primary-text);letter-spacing:.06em;text-transform:uppercase;border-radius:999px;padding:.2rem .6rem;font-size:.7rem;font-weight:700;position:absolute;bottom:.5rem;left:.5rem}.media-tile-av video{object-fit:cover;background:#000;width:100%;height:100%}.media-tile-doc{text-align:center;color:var(--primary);background:var(--primary-soft);flex-direction:column;justify-content:center;align-items:center;gap:.6rem;padding:1rem;text-decoration:none;display:flex}.media-tile-doc:hover{opacity:1;border-color:var(--primary)}.media-doc-name{color:var(--foreground);word-break:break-all;max-height:3.6em;font-size:.8rem;font-weight:600;overflow:hidden}.media-add-tile{border:2px dashed var(--surface-border-strong);height:180px;color:var(--text-muted);cursor:pointer;background:0 0;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:.6rem;font-family:inherit;font-size:.9rem;font-weight:500;transition:all .2s;display:flex}.media-add-tile:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-soft)}.pedigree{flex-direction:column;align-items:center;padding:3rem 2rem;display:flex}.pedigree-row{flex-wrap:wrap;justify-content:center;gap:1.5rem;display:flex}.tree-connector{background:linear-gradient(to bottom, var(--surface-border-strong), var(--primary));width:2px;height:2.25rem}.tree-card{text-align:center;border-radius:16px;flex-direction:column;align-items:center;gap:.4rem;padding:1.25rem 1.75rem;transition:all .3s cubic-bezier(.16,1,.3,1);display:flex}.tree-card:hover{border-color:var(--surface-border-strong);opacity:1;transform:translateY(-4px)}.tree-card.focused{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft), 0 12px 30px #00000040}.tree-card-label{letter-spacing:.09em;text-transform:uppercase;color:var(--primary);font-size:.7rem;font-weight:700}.tree-card-avatar{background:var(--primary-soft);border:2px solid var(--primary);border-radius:50%;justify-content:center;align-items:center;width:64px;height:64px;display:flex;overflow:hidden}.tree-card.focused .tree-card-avatar{width:84px;height:84px}.tree-card-avatar img{object-fit:cover;width:100%;height:100%}.tree-card-avatar span{color:var(--primary);font-size:1.5rem;font-family:var(--font-heading), Georgia, serif}.tree-card-name{font-size:.98rem;font-weight:600}.tree-card-years{color:var(--text-muted);letter-spacing:.04em;font-size:.8rem}.tree-card-cta{color:var(--primary);align-items:center;gap:.3rem;margin-top:.3rem;font-size:.75rem;font-weight:600;display:inline-flex}.member-profile{flex-wrap:wrap;align-items:flex-start;gap:3rem;padding:3rem;display:flex}.member-profile-side{flex-direction:column;flex-shrink:0;gap:1.5rem;width:300px;display:flex}.member-profile-photo{aspect-ratio:1;background:var(--primary-soft);border-radius:16px;justify-content:center;align-items:center;width:100%;display:flex;overflow:hidden}.member-profile-photo img{object-fit:cover;width:100%;height:100%}.member-profile-photo span{color:var(--primary);font-size:5rem;font-family:var(--font-heading), Georgia, serif}.member-profile-stats{padding:1.5rem}.member-profile-stats h4{color:var(--primary);margin-bottom:.75rem;font-size:1.05rem}.member-profile-stats p{margin-bottom:.4rem;font-size:.95rem}.member-link{color:var(--primary);font-weight:500}.member-bio{white-space:pre-wrap;color:var(--foreground);margin-top:1rem;font-size:1.1rem;line-height:1.7}.template-chips{flex-wrap:wrap;gap:.5rem;display:flex}.template-chip{border:1px solid var(--surface-border);color:var(--foreground);cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:.45rem;padding:.5rem .9rem;font-family:inherit;font-size:.88rem;font-weight:500;transition:all .2s;display:inline-flex}.template-chip:hover{border-color:var(--surface-border-strong);background:var(--primary-soft)}.template-chip.active{background:linear-gradient(135deg, var(--primary), var(--primary-hover));color:var(--btn-primary-text);border-color:#0000}.template-panel{background:var(--primary-soft);border-radius:14px;margin-bottom:1.75rem;padding:1.5rem}.persons-row{align-items:center;gap:.4rem;display:flex}.persons-btn{border:1px solid var(--surface-border-strong);opacity:1;border-radius:10px;flex-shrink:0;width:42px;height:42px}.persons-btn:hover{background:var(--primary-soft)}.media-dropzone{border:2px dashed var(--surface-border-strong);text-align:center;cursor:pointer;color:var(--text-muted);border-radius:12px;margin-top:.5rem;padding:2rem;transition:all .2s}.media-dropzone:hover,.media-dropzone.dragging{border-color:var(--primary);background:var(--primary-soft);color:var(--foreground)}.library-toolbar{z-index:50;border-radius:16px;flex-wrap:wrap;align-items:center;gap:1rem;padding:1rem 1.25rem;display:flex;position:sticky;top:5rem}.library-search{background:var(--input-bg);border:1px solid var(--input-border);color:var(--text-muted);border-radius:10px;flex:260px;align-items:center;gap:.6rem;padding:.6rem .9rem;display:flex}.library-search input{color:var(--foreground);background:0 0;border:none;outline:none;flex:1;font-family:inherit;font-size:.95rem}.library-tag-select{width:auto;min-width:160px;padding:.6rem .9rem}.library-grid{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:1.25rem;margin-top:1.5rem;display:grid}.library-card{cursor:pointer;text-align:left;color:var(--foreground);flex-direction:column;padding:0;font-family:inherit;transition:all .3s cubic-bezier(.16,1,.3,1);display:flex;overflow:hidden}.library-card:hover{border-color:var(--surface-border-strong);transform:translateY(-4px);box-shadow:0 12px 28px #00000040}.library-thumb{background:var(--primary-soft);height:160px}.library-thumb img{object-fit:cover;width:100%;height:100%}.library-thumb-icon{width:100%;height:100%;color:var(--primary);justify-content:center;align-items:center;display:flex}.library-card-body{flex-direction:column;gap:.35rem;padding:.8rem 1rem;display:flex}.library-card-name{word-break:break-all;font-size:.88rem;font-weight:600}.library-card-tags{color:var(--primary);align-items:center;gap:.35rem;font-size:.75rem;display:inline-flex}.timeline-toolbar{z-index:10;flex-direction:column;gap:1rem;margin-bottom:1rem;display:flex;position:relative}.time-guide{z-index:60;-webkit-user-select:none;user-select:none;flex-direction:column;align-items:center;gap:.5rem;height:56vh;display:flex;position:fixed;top:50%;right:22px;transform:translateY(-50%)}@media (max-width:1100px){.time-guide{display:none}}.time-guide-year{letter-spacing:.05em;color:var(--text-muted);font-size:.7rem;font-weight:600;font-family:var(--font-sans), system-ui, sans-serif}.time-guide-track{cursor:pointer;touch-action:none;flex:1;width:34px;position:relative}.time-guide-line{background:linear-gradient(to bottom, var(--primary), var(--surface-border-strong));opacity:.55;border-radius:2px;width:2px;position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%)}.time-guide-tick{background:var(--text-muted);opacity:.5;border-radius:50%;width:5px;height:5px;position:absolute;left:50%;transform:translate(-50%,-50%)}.time-guide-handle{background:var(--primary);width:14px;height:14px;box-shadow:0 0 0 3px var(--primary-soft), 0 2px 8px #00000059;border-radius:50%;transition:top .15s;position:absolute;left:50%;transform:translate(-50%,-50%)}.time-guide-handle.dragging{transition:none}.time-guide-bubble{background:var(--surface-raised);border:1px solid var(--surface-border-strong);color:var(--foreground);font-size:.78rem;font-weight:600;font-family:var(--font-sans), system-ui, sans-serif;white-space:nowrap;opacity:0;pointer-events:none;border-radius:8px;padding:.2rem .6rem;transition:opacity .15s;position:absolute;top:50%;right:22px;transform:translateY(-50%)}.time-guide-track:hover .time-guide-bubble,.time-guide-handle.dragging .time-guide-bubble{opacity:1}.itinerary-list{flex-direction:column;gap:.6rem;display:flex}.itinerary-item,.itinerary-head{grid-template-columns:minmax(130px,.8fr) minmax(130px,.8fr) minmax(130px,1fr) minmax(130px,1.3fr) auto;align-items:center;gap:.5rem;display:grid}.itinerary-head{letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);padding:0 .2rem;font-size:.72rem;font-weight:600}.itinerary-add{align-self:flex-start;margin-top:.75rem}@media (max-width:640px){.itinerary-head{display:none}.itinerary-item{grid-template-columns:1fr 1fr}.itinerary-item .btn-icon{justify-self:end}}.language-selector{align-items:center;gap:.75rem;display:flex}.language-selector select{max-width:260px}.language-selector .form-success{align-items:center;gap:.3rem;display:inline-flex}[dir=rtl] .timeline-journey.labels-left .timeline-journey-label{text-align:left;align-items:flex-start;left:44px;right:auto}[dir=rtl] .timeline-journey.labels-right .timeline-journey-label{text-align:right;align-items:flex-end;left:auto;right:44px}.member-chat-toggle{color:var(--text-muted);cursor:pointer;align-items:center;gap:.5rem;margin-top:1.25rem;font-size:.92rem;display:flex}.member-chat-toggle input{accent-color:var(--primary);width:16px;height:16px}.tree-mode-switch{background:var(--surface-raised);border:1px solid var(--surface-border);border-radius:12px;gap:.25rem;margin-bottom:1.25rem;padding:.25rem;display:inline-flex}.tree-mode-switch button{color:var(--text-muted);font:inherit;cursor:pointer;background:0 0;border:none;border-radius:9px;align-items:center;gap:.45rem;padding:.5rem 1rem;font-size:.9rem;font-weight:600;transition:background .15s,color .15s;display:inline-flex}.tree-mode-switch button:hover{color:var(--foreground)}.tree-mode-switch button.active{background:var(--primary);color:var(--btn-primary-text)}.fulltree-scroll{padding:1.5rem;position:relative;overflow:auto}.fulltree-zoom{z-index:5;background:var(--surface-raised);border:1px solid var(--surface-border);border-radius:10px;align-items:center;gap:.15rem;width:max-content;margin-left:auto;padding:.25rem;display:inline-flex;position:sticky;top:0;left:100%;box-shadow:0 2px 10px #00000040}.fulltree-zoom button{min-width:34px;height:30px;color:var(--foreground);font:inherit;cursor:pointer;background:0 0;border:none;border-radius:7px;justify-content:center;align-items:center;padding:0 .4rem;font-size:.82rem;font-weight:600;transition:background .15s;display:inline-flex}.fulltree-zoom button:hover{background:var(--primary-soft);color:var(--primary)}.fulltree-viewport{margin:0 auto}.fulltree{margin:0 auto;position:relative}.fulltree-lines{pointer-events:none;position:absolute;inset:0}.fulltree-lines path{fill:none;stroke:var(--surface-border-strong);stroke-width:1.5px}.fulltree-node{background:var(--primary-soft);color:var(--primary);border:2px solid var(--surface-border-strong);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;font-size:1.1rem;font-weight:700;transition:transform .15s,border-color .15s;display:flex;position:absolute;overflow:hidden;transform:translate(-50%,-50%);box-shadow:0 2px 8px #00000040}.fulltree-node img{object-fit:cover;width:100%;height:100%}.fulltree-node:hover{border-color:var(--primary);z-index:2;transform:translate(-50%,-50%)scale(1.1)}.twofa-setup .twofa-qr{background:#fff;border-radius:12px;width:220px;height:220px;margin:.5rem 0 1rem;padding:8px;display:block}.twofa-steps{color:var(--text-muted);margin:0 0 .75rem 1rem;padding:0;font-size:.92rem}.twofa-secret{background:var(--primary-soft);color:var(--foreground);letter-spacing:.12em;word-break:break-all;border-radius:8px;margin-top:.4rem;padding:.35rem .6rem;font-family:ui-monospace,monospace;font-size:.95rem;display:inline-block}.twofa-backup{margin-top:1rem}.twofa-codes{border:1px dashed var(--surface-border-strong);letter-spacing:.08em;border-radius:12px;grid-template-columns:repeat(2,max-content);gap:.4rem 2rem;margin:.75rem 0;padding:1rem 1.25rem;font-family:ui-monospace,monospace;list-style:none;display:grid}.pending-users{flex-direction:column;gap:.75rem;margin:0;padding:0;list-style:none;display:flex}.pending-user{border:1px solid var(--surface-border);border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 1rem;display:flex}.pending-user-info{flex-direction:column;line-height:1.35;display:flex}.pending-user-info span{color:var(--text-muted);font-size:.85rem}.pending-user-actions{flex-wrap:wrap;align-items:flex-end;gap:.5rem;display:flex}.pending-approve{align-items:flex-end;gap:.5rem;margin:0;display:flex}.pending-link-label{color:var(--text-muted);flex-direction:column;gap:.25rem;font-size:.75rem;display:flex}.pending-link-select{max-width:15rem;padding:.4rem .6rem;font-size:.85rem}.pending-btn{padding:.45rem .9rem;font-size:.85rem}.chat-layout{grid-template-columns:280px 1fr;align-items:start;gap:1.5rem;display:grid}@media (max-width:760px){.chat-layout{grid-template-columns:1fr}}.chat-sidebar{border-radius:16px;flex-direction:column;gap:2px;padding:1rem .75rem;display:flex}.chat-section-title{letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);font-size:.72rem;font-weight:700;font-family:var(--font-sans), system-ui, sans-serif;margin:1.1rem .75rem .4rem}.chat-item{cursor:pointer;width:100%;color:var(--foreground);font:inherit;text-align:left;background:0 0;border:none;border-radius:10px;align-items:center;gap:.7rem;padding:.5rem .75rem;font-size:.92rem;transition:background .15s;display:flex}.chat-item:hover{background:var(--primary-soft)}.chat-item.active{background:var(--primary-soft);color:var(--primary)}.chat-unread{background:var(--primary);min-width:19px;height:19px;color:var(--btn-primary-text);font-size:.7rem;font-weight:700;font-family:var(--font-sans), system-ui, sans-serif;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;margin-left:auto;padding:0 5px;line-height:1;display:inline-flex}.nav-link .chat-unread{margin-left:.4rem}.chat-people-picker{margin:.35rem .5rem 0}.chat-people-picker select{border:1px solid var(--surface-border-strong);width:100%;color:var(--foreground);font:inherit;cursor:pointer;appearance:none;background-color:#0000;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23a98a52' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right .7rem center;background-repeat:no-repeat;border-radius:10px;padding:.55rem 2rem .55rem .75rem;font-size:.9rem;transition:background-color .15s,border-color .15s}.chat-people-picker select:hover{background-color:var(--primary-soft);border-color:var(--primary)}.chat-item-disabled{opacity:.45;cursor:default}.chat-item-disabled:hover{background:0 0}.chat-item-name{flex-direction:column;line-height:1.25;display:flex}.chat-item-name small{color:var(--text-muted);font-size:.74rem}.chat-avatar{background:var(--primary-soft);width:32px;height:32px;color:var(--primary);object-fit:cover;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.85rem;font-weight:600;display:inline-flex;overflow:hidden}.chat-avatar-notes,.chat-avatar-group{background:var(--primary-soft)}.chat-new-group{margin:1rem .5rem .25rem}.chat-new-group summary{cursor:pointer;color:var(--text-muted);align-items:center;gap:.4rem;padding:.35rem .25rem;font-size:.88rem;list-style:none;display:flex}.chat-new-group summary::-webkit-details-marker{display:none}.chat-new-group summary:hover{color:var(--foreground)}.chat-new-group-form{flex-direction:column;gap:.75rem;padding:.5rem .25rem;display:flex}.chat-new-group-people{color:var(--text-muted);flex-direction:column;gap:.4rem;font-size:.88rem;display:flex}.chat-new-group-people label{cursor:pointer;align-items:center;gap:.5rem;display:flex}.chat-new-group-people input{accent-color:var(--primary)}.chat-new-group-btn{padding:.55rem 1rem;font-size:.88rem}.chat-thread{border-radius:16px;flex-direction:column;min-height:540px;max-height:75vh;display:flex}.chat-thread-empty{color:var(--text-muted);justify-content:center;align-items:center;gap:.75rem}.chat-thread-head{border-bottom:1px solid var(--surface-border);align-items:center;gap:.75rem;padding:1rem 1.25rem;display:flex}.chat-messages{flex-direction:column;flex:1;gap:.5rem;padding:1rem 1.25rem;display:flex;overflow-y:auto}.chat-day{text-align:center;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);margin:.9rem 0 .4rem;font-size:.72rem}.chat-message{display:flex}.chat-message.mine{justify-content:flex-end}.chat-bubble{background:var(--surface-raised);border:1px solid var(--surface-border);white-space:pre-wrap;word-break:break-word;border-radius:14px 14px 14px 4px;max-width:75%;padding:.55rem .85rem;font-size:.93rem;line-height:1.45}.chat-message.mine .chat-bubble{background:var(--primary-soft);border-color:#0000;border-bottom-right-radius:4px;border-bottom-left-radius:14px}.chat-sender{color:var(--primary);margin-bottom:.15rem;font-size:.74rem;font-weight:600;display:block}.chat-time{color:var(--text-muted);white-space:nowrap;margin-left:.6rem;font-size:.7rem;display:inline-block}.chat-bubble{position:relative}.chat-msg-actions{opacity:0;gap:4px;transition:opacity .15s;display:flex;position:absolute;top:-10px;right:-8px}.chat-message:hover .chat-msg-actions{opacity:1}.chat-action{border:1px solid var(--surface-border-strong);background:var(--surface-raised);width:22px;height:22px;color:var(--text-muted);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;transition:color .15s,background .15s,border-color .15s;display:flex}.chat-action:hover{color:var(--foreground);background:var(--primary-soft);border-color:var(--primary)}.chat-delete:hover{color:#fff;background:var(--error);border-color:var(--error)}.chat-edit{flex-direction:column;gap:.4rem;min-width:220px;display:flex}.chat-edit textarea{resize:vertical;font:inherit}.chat-edit-actions{gap:.4rem;display:flex}.chat-edit-btn{padding:.35rem .7rem;font-size:.82rem}.chat-edited{opacity:.7;margin-right:.4rem;font-style:italic}.chat-nsfw-on{color:var(--primary);background:var(--primary-soft)}.chat-bubble-masked{background:repeating-linear-gradient(45deg, var(--surface-raised), var(--surface-raised) 8px, var(--surface-border) 8px, var(--surface-border) 16px)}.chat-reveal{color:var(--text-muted);font:inherit;cursor:pointer;background:0 0;border:none;align-items:center;gap:.45rem;padding:.15rem 0;font-size:.9rem;font-style:italic;display:inline-flex}.chat-reveal:hover{color:var(--foreground)}.chat-expire{color:var(--primary);white-space:nowrap;align-items:center;gap:.25rem;margin-left:.6rem;font-size:.68rem;display:inline-flex}.chat-composer-wrap{border-top:1px solid var(--surface-border)}.chat-composer{align-items:center;gap:.6rem;padding:.9rem 1.25rem;display:flex}.chat-head-people{display:flex}.chat-head-people .chat-avatar+.chat-avatar{margin-left:-8px}.chat-attach-list{flex-wrap:wrap;gap:.4rem;padding:.75rem 1.25rem 0;display:flex}.chat-attach-chip{background:var(--primary-soft);color:var(--foreground);white-space:nowrap;text-overflow:ellipsis;border-radius:999px;align-items:center;gap:.35rem;max-width:240px;padding:.25rem .4rem .25rem .7rem;font-size:.8rem;display:inline-flex;overflow:hidden}.chat-attach-chip button{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:2px;display:inline-flex}.chat-attach-chip button:hover{color:var(--error)}.chat-files{flex-direction:column;gap:.5rem;margin-bottom:.35rem;display:flex}.chat-file-image img{object-fit:cover;border-radius:10px;max-width:280px;max-height:220px;display:block}.chat-file-media{display:inline-block;position:relative}.chat-file-download{color:#fff;opacity:0;background:#0009;border-radius:7px;justify-content:center;align-items:center;width:26px;height:26px;transition:opacity .2s,background .2s;display:flex;position:absolute;top:6px;right:6px}.chat-file-media:hover .chat-file-download,.chat-file-download:focus-visible{opacity:1}.chat-file-download:hover{background:var(--primary)}@media (hover:none){.chat-file-download{opacity:.9}.media-tile-actions{opacity:1}}.chat-file-video{border-radius:10px;max-width:300px;display:block}.chat-file-audio{width:240px;display:block}.chat-file-doc{color:var(--primary);align-items:center;gap:.45rem;font-size:.88rem;text-decoration:underline;display:inline-flex}.chat-composer input{flex:1}.chat-composer button{padding:.6rem 1rem}.media-modal-backdrop{-webkit-backdrop-filter:blur(4px);z-index:300;background:#0009;justify-content:center;align-items:flex-start;padding:5rem 1rem 2rem;display:flex;position:fixed;inset:0;overflow-y:auto}.media-modal{background:var(--surface-raised);border-radius:20px;width:100%;max-width:640px;padding:2rem;animation:.2s cubic-bezier(.16,1,.3,1) menu-pop;position:relative}.media-modal-close{position:absolute;top:1rem;right:1rem}.media-modal-preview{border-radius:14px;margin-bottom:1.5rem;overflow:hidden}.media-modal-preview img,.media-modal-preview video{object-fit:contain;background:#00000040;width:100%;max-height:340px;display:block}.map-panel{border-radius:20px;padding:.75rem;overflow:hidden}.leaflet-panel{background:var(--surface-raised);width:100%;color:var(--text-muted);z-index:1;border-radius:14px;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.map-pin{background:0 0;border:none}.map-pin-dot{background:linear-gradient(135deg, var(--primary), var(--primary-hover));border:2px solid #fff;border-radius:50% 50% 50% 0;width:20px;height:20px;display:block;transform:rotate(-45deg);box-shadow:0 2px 8px #00000073}.map-pin-num{background:linear-gradient(135deg, var(--primary), var(--primary-hover));width:24px;height:24px;color:var(--btn-primary-text,#1a1407);font-family:var(--font-sans), system-ui, sans-serif;border:2px solid #fff;border-radius:50%;justify-content:center;align-items:center;font-size:.78rem;font-weight:700;display:flex;box-shadow:0 2px 8px #00000073}.map-popup{font-family:var(--font-sans), system-ui, sans-serif;font-size:.9rem;line-height:1.45}.event-map-section{margin-top:2.5rem}.event-map-section h3{align-items:center;gap:.5rem;margin-bottom:1.25rem;display:inline-flex}.leaflet-container .map-popup a{color:#a87b1f;font-weight:600;text-decoration:underline}.map-popup-sub{color:#555;font-size:.8rem}.map-search{max-width:420px;margin-bottom:1.25rem}.map-flag{border:2px solid var(--primary);background:#fff;border-radius:50%;justify-content:center;align-items:center;width:30px;height:30px;font-size:15px;line-height:1;display:flex;box-shadow:0 2px 8px #00000073}.map-flag-multi{background:linear-gradient(135deg, var(--primary), var(--primary-hover));color:#1a1407;font-family:var(--font-sans), system-ui, sans-serif;border-color:#fff;font-size:.85rem;font-weight:700}.map-popup-list{flex-direction:column;gap:.5rem;max-height:220px;margin:.5rem 0 0;padding:0;list-style:none;display:flex;overflow-y:auto}.map-popup-list li{align-items:flex-start;gap:.5rem;display:flex}.map-popup-glyph{flex-shrink:0;font-size:15px;line-height:1.3}.unmapped-list{flex-direction:column;gap:.6rem;padding:0;list-style:none;display:flex}.text-center{text-align:center}.mt-4{margin-top:1rem}.mt-8{margin-top:2rem}.mb-4{margin-bottom:1rem}.mb-8{margin-bottom:2rem}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-4{gap:1rem}.gap-2{gap:.5rem}.w-full{width:100%}.max-w-md{max-width:28rem;margin-left:auto;margin-right:auto}.ai-settings{flex-direction:column;gap:1rem;display:flex}.ai-field{flex-direction:column;gap:.35rem;display:flex}.ai-field-label{color:var(--text-muted);align-items:center;gap:.5rem;font-size:.85rem;font-weight:600;display:flex}.ai-field-link{color:var(--primary);align-items:center;gap:.2rem;font-weight:500;text-decoration:none;display:inline-flex}.ai-field-link:hover{text-decoration:underline}.ai-field-link{cursor:pointer;background:0 0;border:none;margin-left:auto}.ai-field-link:disabled{opacity:.6;cursor:default}.ai-field-note{color:var(--text-muted);margin-top:.3rem;font-size:.78rem}.ai-settings-actions{flex-wrap:wrap;align-items:center;gap:1rem;display:flex}.story-builder{flex-direction:column;gap:1rem;display:flex}.story-search{color:var(--text-muted);align-items:center;gap:.5rem;display:flex}.story-search .input-field{flex:1}.story-event-list{flex-direction:column;gap:.4rem;max-height:60vh;padding:.25rem;display:flex;overflow-y:auto}.story-event{border:1px solid var(--surface-border);background:var(--surface);cursor:pointer;border-radius:.75rem;align-items:center;gap:.75rem;padding:.6rem .85rem;transition:border-color .15s,background .15s;display:flex}.story-event:hover{border-color:var(--surface-border-strong)}.story-event.selected{border-color:var(--primary);background:var(--primary-soft)}.story-event input{width:18px;height:18px;accent-color:var(--primary)}.story-event-glyph{font-size:1.2rem}.story-event-body{flex-direction:column;gap:.15rem;min-width:0;display:flex}.story-event-title{font-weight:600}.story-event-meta{color:var(--text-muted);align-items:center;gap:.3rem;font-size:.8rem;display:inline-flex}.story-builder-actions{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.story-ai-missing{text-align:center;color:var(--text-muted);flex-direction:column;align-items:center;gap:1rem;padding:3rem 2rem;display:flex}.stories-controls{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem;display:flex}.stories-controls .story-search{flex:1;min-width:220px}.stories-sort{align-items:center;gap:.5rem;display:flex}.stories-sort-btn{padding:.4rem .8rem}.stories-sort-btn.active{background:var(--primary-soft);color:var(--primary)}.stories-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.25rem;display:grid}.story-card{color:inherit;border-radius:1rem;flex-direction:column;text-decoration:none;transition:transform .15s,border-color .15s;display:flex;overflow:hidden}.story-card:hover{transform:translateY(-3px)}.story-card-cover{aspect-ratio:16/9;background:var(--primary-soft);justify-content:center;align-items:center;display:flex;overflow:hidden}.story-card-cover img{object-fit:cover;width:100%;height:100%}.story-card-cover-empty{color:var(--primary);opacity:.6}.story-card-body{flex-direction:column;gap:.5rem;padding:1rem 1.1rem 1.2rem;display:flex}.story-card-body h3{margin:0}.story-card-excerpt{color:var(--text-muted);font-size:.9rem;line-height:1.5}.story-card-meta{color:var(--text-muted);flex-wrap:wrap;gap:.85rem;font-size:.8rem;display:flex}.story-card-meta span{align-items:center;gap:.3rem;display:inline-flex}.story-detail-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.5rem;display:flex}.story-prose{border-radius:1rem;padding:1.75rem 2rem;line-height:1.75}.story-prose p{margin-bottom:1rem}.story-prose p:last-child{margin-bottom:0}.story-album{margin-top:2.5rem}.story-album h3,.story-events-included h3{margin-bottom:1rem}.album-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.75rem;display:grid}.album-item{aspect-ratio:1;object-fit:cover;border-radius:.75rem;width:100%;display:block}.album-item-link{display:block}.album-audio{grid-column:1/-1;width:100%}.album-doc{border:1px solid var(--surface-border);color:inherit;border-radius:.75rem;align-items:center;gap:.4rem;padding:.6rem .9rem;text-decoration:none;display:inline-flex}.story-events-included{margin-top:2.5rem}.story-events-included ul{flex-direction:column;gap:.4rem;list-style:none;display:flex}.story-events-included a{color:var(--primary);text-decoration:none}.story-events-included a:hover{text-decoration:underline}.story-delete-confirm{flex-wrap:wrap;align-items:center;gap:.6rem;display:inline-flex}.palette-picker{flex-wrap:wrap;gap:.5rem;display:flex}.palette-btn{border:1px solid var(--surface-border);background:var(--surface);color:var(--foreground);cursor:pointer;border-radius:.7rem;align-items:center;gap:.55rem;padding:.5rem .9rem;font-size:.88rem;transition:border-color .15s,background .15s;display:inline-flex}.palette-btn:hover{border-color:var(--surface-border-strong)}.palette-btn.active{border-color:var(--primary);background:var(--primary-soft)}.palette-swatch{border-radius:50%;width:16px;height:16px;box-shadow:inset 0 0 0 1px #00000040}.timeline-cluster{z-index:2;width:100%;position:relative}.cluster-card{border-radius:1rem;padding:1.5rem 1.5rem 1.25rem}.cluster-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.1rem;display:flex}.cluster-title{font-family:var(--font-heading);align-items:center;gap:.5rem;font-size:1.15rem;display:inline-flex}.cluster-title svg{color:var(--primary)}.cluster-title-btn{width:26px;height:26px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;transition:color .15s,background .15s;display:inline-flex}.cluster-title-btn:hover{color:var(--primary);background:var(--primary-soft)}.cluster-title-input{font-family:var(--font-heading);color:var(--foreground);background:var(--surface);border:1px solid var(--surface-border-strong);border-radius:8px;min-width:14rem;padding:.25rem .6rem;font-size:1.1rem}.cluster-title-input:focus{border-color:var(--primary);outline:none}.cluster-range{color:var(--text-muted);font-size:.9rem}.cluster-grid{grid-template-columns:58px 1fr;gap:.5rem;display:grid}.cluster-axis{position:relative}.cluster-axis-tick{color:var(--text-muted);white-space:nowrap;font-size:11px;position:absolute;right:8px;transform:translateY(-50%)}.cluster-axis-tick:after{content:"";background:var(--surface-border-strong);width:6px;height:1px;position:absolute;top:50%;right:-8px}.cluster-lanes{gap:10px;display:grid;position:relative}.cluster-lane{height:100%;position:relative}.cluster-trip-rail{opacity:.5;border-radius:2px;width:3px;position:absolute;left:3px}.cluster-stop{color:var(--foreground);border:1px solid;border-left-width:3px;border-radius:8px;flex-direction:column;gap:1px;padding:5px 8px;text-decoration:none;transition:transform .15s,box-shadow .15s;display:flex;position:absolute;left:12px;right:2px;overflow:hidden}.cluster-stop:hover{transform:translate(2px);box-shadow:0 6px 18px #00000040}.cluster-stop-head{color:var(--trip);align-items:center;gap:6px;font-size:11px;font-weight:600;display:flex}.cluster-stop-avatars{margin-top:3px;display:inline-flex}.cluster-stop-avatar{background:var(--primary-soft);width:18px;height:18px;color:var(--foreground);border:1px solid var(--surface);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin-left:-5px;font-size:9px;display:inline-flex;overflow:hidden}.cluster-stop-avatar:first-child{margin-left:0}.cluster-stop-avatar img{object-fit:cover;width:100%;height:100%}.cluster-stop-place{white-space:nowrap;text-overflow:ellipsis;font-size:12.5px;font-weight:600;line-height:1.2;overflow:hidden}.cluster-stop-when{color:var(--text-muted);font-size:11px}.cluster-stop-colo{color:var(--trip);align-items:center;gap:3px;font-size:10.5px;display:inline-flex}.cluster-marker-lane{border-left:1px dashed var(--surface-border-strong)}.cluster-marker{background:var(--surface);border:1px solid var(--surface-border-strong);color:var(--foreground);border-radius:8px;align-items:center;gap:7px;padding:6px 9px;text-decoration:none;transition:transform .15s,box-shadow .15s,border-color .15s;display:flex;position:absolute;left:8px;right:2px;transform:translateY(-50%)}.cluster-marker:before{content:"";background:var(--primary);width:7px;height:7px;box-shadow:0 0 0 2px var(--surface);border-radius:50%;position:absolute;top:50%;left:-9px;transform:translateY(-50%)}.cluster-marker:hover{border-color:var(--primary);transform:translateY(-50%)translate(2px);box-shadow:0 6px 18px #00000040}.cluster-marker-glyph{flex-shrink:0;font-size:15px;line-height:1}.cluster-marker-body{flex-direction:column;min-width:0;display:flex}.cluster-marker-title{white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:600;line-height:1.2;overflow:hidden}.cluster-marker-when{color:var(--text-muted);font-size:10.5px}@media (max-width:640px){.cluster-grid{grid-template-columns:44px 1fr}.cluster-stop-when,.cluster-marker-when{display:none}}.dayblock{border-radius:1rem;padding:1rem 1.25rem}.dayblock-head{cursor:pointer;text-align:left;width:100%;color:var(--foreground);background:0 0;border:none;align-items:center;gap:14px;padding:0;display:flex}.dayblock-head>svg{color:var(--text-muted);flex-shrink:0}.dayblock-date{font-family:var(--font-heading);flex-shrink:0;font-size:1.1rem}.dayblock-preview{flex:1;align-items:center;gap:12px;min-width:0;display:flex}.dayblock-chips{gap:6px;display:inline-flex}.dayblock-chip{background:var(--primary-soft);width:28px;height:28px;color:var(--primary);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.dayblock-count{color:var(--text-muted);white-space:nowrap;font-size:.85rem}.dayblock-avatars{display:inline-flex}.dayblock-avatar{background:var(--primary-soft);width:24px;height:24px;color:var(--foreground);border:1.5px solid var(--surface);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin-left:-6px;font-size:11px;display:inline-flex;overflow:hidden}.dayblock-avatar:first-child{margin-left:0}.dayblock-avatar img{object-fit:cover;width:100%;height:100%}.dayblock-body{flex-direction:column;gap:4px;margin-top:1rem;display:flex}.dayblock-occasion{border-left:2px solid var(--primary);border-radius:0;flex-direction:column;gap:4px;margin:4px 0;padding-left:12px;display:flex}.dayblock-occasion-label{color:var(--primary);align-items:center;gap:6px;font-size:.85rem;font-weight:600;display:inline-flex}.dayblock-row{color:var(--foreground);border:1px solid #0000;border-radius:8px;align-items:center;gap:10px;padding:8px 10px;text-decoration:none;transition:background .15s,border-color .15s;display:flex}.dayblock-row:hover{background:var(--surface-raised);border-color:var(--surface-border)}.dayblock-row-icon{color:var(--primary);flex-shrink:0;display:inline-flex}.dayblock-row-title{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.dayblock-row-go{color:var(--text-muted);flex-shrink:0}@media (max-width:640px){.dayblock-preview .dayblock-avatars{display:none}}.overlap-list{flex-direction:column;gap:.4rem;display:flex}.overlap-row{border:1px solid var(--surface-border);cursor:pointer;border-radius:8px;align-items:center;gap:.6rem;padding:.5rem .75rem;display:flex}.overlap-row:hover{border-color:var(--surface-border-strong)}.overlap-row input{accent-color:var(--primary);flex-shrink:0;width:16px;height:16px}.overlap-row-text{flex-direction:column;min-width:0;display:flex}.overlap-row-who{font-weight:600}.overlap-row-when{color:var(--text-muted);font-size:.8rem}.login-intro{z-index:100;background:var(--background);cursor:pointer;opacity:1;justify-content:center;align-items:center;transition:opacity .5s;display:flex;position:fixed;inset:0}.login-intro.is-fading{opacity:0}.login-intro-video{aspect-ratio:966/718;object-fit:contain;background:#000;border-radius:16px;width:min(92vw,560px);height:auto;max-height:82vh}.login-intro-skip{border:1px solid var(--surface-border-strong);background:var(--surface);color:var(--text-muted);cursor:pointer;border-radius:999px;padding:.4rem 1rem;font-size:.85rem;transition:color .15s,border-color .15s;position:absolute;bottom:1.75rem;right:1.75rem}.login-intro-skip:hover{color:var(--foreground);border-color:var(--primary)}.login-intro-sound{border:1px solid var(--surface-border-strong);background:var(--surface);color:var(--text-muted);cursor:pointer;border-radius:999px;align-items:center;gap:.4rem;padding:.4rem 1rem;font-size:.85rem;transition:color .15s,border-color .15s;display:inline-flex;position:absolute;bottom:1.75rem;left:1.75rem}.login-intro-sound:hover{color:var(--foreground);border-color:var(--primary)}.folder-stats{color:var(--text-muted);flex-wrap:wrap;gap:1.25rem;font-size:.9rem;display:flex}.folder-stats span{align-items:center;gap:.4rem;display:inline-flex}.folder-stats svg{color:var(--primary)}.story-journey{margin-top:2rem}.story-journey h3{margin-bottom:.75rem}.story-map{border:1px solid var(--surface-border)}.story-pin-wrap{background:0 0!important;border:0!important}.story-pin{background:var(--surface);border:2px solid #d99a2b;border-radius:50%;width:54px;height:54px;position:relative;overflow:hidden;box-shadow:0 2px 8px #0006}.story-pin img{object-fit:cover;width:100%;height:100%;display:block}.story-pin-blank{background:var(--primary-soft);width:100%;height:100%}.story-pin-n{z-index:2;color:#1a1a1a;background:#d99a2b;border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;font-size:11px;font-weight:700;display:flex;position:absolute;top:-4px;left:-4px;box-shadow:0 1px 3px #0006}.story-pin-cap{color:#333;text-align:center;margin-top:6px;font-size:12px}.member-contact-box p{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.member-contact-box svg{color:var(--primary);flex-shrink:0}.member-site-link{align-items:center;gap:.4rem;font-weight:600;display:inline-flex}.member-site-private{color:var(--text-muted);font-weight:400}.site-template-row{flex-wrap:wrap;gap:.75rem;display:flex}.site-template{cursor:pointer;text-align:left;background:var(--surface);border:1px solid var(--surface-border);border-radius:10px;flex-direction:column;align-items:flex-start;gap:.15rem;min-width:8.5rem;padding:.75rem;display:flex}.site-template.active{border-color:var(--primary);box-shadow:0 0 0 1px var(--primary)}.site-template-swatch{border-radius:6px;width:100%;height:34px;margin-bottom:.25rem}.site-template-swatch.tpl-classic{background:var(--primary-soft)}.site-template-swatch.tpl-minimal{background:var(--surface-raised);border:1px solid var(--surface-border)}.site-template-swatch.tpl-portfolio{background:var(--primary)}.site-repeat{border:1px solid var(--surface-border);border-radius:10px;margin-bottom:.75rem;padding:.75rem}.site-repeat-head{align-items:center;gap:.5rem;margin-bottom:.5rem;display:flex}.psite-page{z-index:2;max-width:760px;margin:0 auto;padding:3rem 1.5rem;position:relative}.psite-hero{align-items:center;gap:1.5rem;display:flex}.psite-photo{object-fit:cover;border:2px solid var(--surface-border-strong);border-radius:50%;flex-shrink:0;width:120px;height:120px}.psite-name{font-family:var(--font-heading);margin:0;font-size:2.4rem;line-height:1.1}.psite-headline{color:var(--text-muted);margin:.35rem 0 0;font-size:1.1rem}.psite-section{margin-top:2rem}.psite-section-heading{font-family:var(--font-heading);color:var(--primary);margin-bottom:.5rem}.psite-section-body{margin:0 0 .75rem;line-height:1.75}.psite-links{flex-wrap:wrap;gap:.6rem;margin-top:1.75rem;display:flex}.psite-link{border:1px solid var(--surface-border-strong);color:var(--foreground);border-radius:999px;align-items:center;gap:.4rem;padding:.45rem .95rem;text-decoration:none;display:inline-flex}.psite-link:hover{border-color:var(--primary);color:var(--primary)}.psite-contact{margin-top:2rem}.psite-contact-row{color:var(--foreground);align-items:center;gap:.5rem;margin:.35rem 0;text-decoration:none;display:flex}.psite-contact-row svg{color:var(--primary)}.psite-footer{text-align:center;max-width:760px;color:var(--text-muted);border-top:1px solid var(--surface-border);z-index:2;margin:3rem auto 0;padding:1.5rem;position:relative}.psite-home-link{color:inherit;text-decoration:none}.psite-home-link:hover,.psite-home-link strong{color:var(--primary)}.psite-badge{background:var(--primary-soft);color:var(--primary);border-radius:999px;margin-left:.5rem;padding:.15rem .55rem;font-size:.75rem}.psite-classic{text-align:center}.psite-classic .psite-hero{flex-direction:column}.psite-classic .psite-links,.psite-classic .psite-contact-row{justify-content:center}.psite-portfolio .psite-photo{width:160px;height:160px}.psite-portfolio .psite-name{font-size:2.9rem}.psite-portfolio .psite-section{background:var(--surface);border:1px solid var(--surface-border);border-radius:14px;padding:1.25rem 1.5rem}@media (max-width:560px){.psite-hero{text-align:center;flex-direction:column}}@media (prefers-reduced-motion:reduce){.login-intro{display:none}}.celebration{z-index:200;pointer-events:none;position:fixed;inset:0}.celebration-canvas{width:100%;height:100%;position:absolute;inset:0}.celebration-banner{pointer-events:auto;border-radius:1rem;max-width:min(92vw,580px);padding:1.1rem 2.75rem 1.1rem 1.5rem;animation:.55s cubic-bezier(.18,.9,.3,1.2) both celebration-pop;position:fixed;top:14%;left:50%;transform:translate(-50%);box-shadow:0 18px 48px #0006}.celebration-close{background:var(--surface-strong,#ffffff14);width:26px;height:26px;color:var(--text-muted);cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;transition:color .15s,background .15s;display:inline-flex;position:absolute;top:.55rem;right:.6rem}.celebration-close:hover{color:var(--foreground)}.celebration-list{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.celebration-line{align-items:center;gap:.7rem;display:flex}.celebration-emoji{flex-shrink:0;font-size:1.6rem;line-height:1}.celebration-text{font-family:var(--font-heading);color:var(--primary);font-size:1.3rem;line-height:1.2}@keyframes celebration-pop{0%{opacity:0;transform:translate(-50%)scale(.82)}to{opacity:1;transform:translate(-50%)scale(1)}}@media (prefers-reduced-motion:reduce){.celebration-banner{animation:none}}@media (max-width:640px){.celebration-text{font-size:1.1rem}.celebration-emoji{font-size:1.35rem}}.global-nav{padding-left:max(3rem, env(safe-area-inset-left));padding-right:max(3rem, env(safe-area-inset-right))}@media (max-width:860px){.global-nav{height:calc(4rem + env(safe-area-inset-top));padding-top:env(safe-area-inset-top);padding-left:max(1rem, env(safe-area-inset-left));padding-right:max(1rem, env(safe-area-inset-right));gap:.5rem}.nav-brand{flex:1;order:1;min-width:0;font-size:1.15rem}.nav-brand-link{gap:.5rem;min-width:0}.nav-brand-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.nav-logo{height:36px}.nav-user{order:2}.nav-toggle{order:3;display:flex}.user-menu-trigger span,.user-menu-chevron{display:none}.user-menu-trigger{gap:0;padding:.2rem}.nav-links{top:calc(4rem + env(safe-area-inset-top));padding:.75rem 1rem calc(1rem + env(safe-area-inset-bottom));background:color-mix(in srgb, var(--background) 98%, transparent);-webkit-backdrop-filter:blur(18px)saturate(140%);border-bottom:1px solid var(--surface-border);opacity:0;pointer-events:none;z-index:99;max-height:calc(100dvh - 4rem - env(safe-area-inset-top));flex-direction:column;gap:.25rem;transition:opacity .2s,transform .2s;position:fixed;left:0;right:0;overflow-y:auto;transform:translateY(-10px)}.nav-links.open{opacity:1;pointer-events:auto;transform:translateY(0)}.nav-link{border-radius:12px;padding:.85rem 1rem;font-size:1.05rem}.nav-scrim{inset:0;top:calc(4rem + env(safe-area-inset-top));z-index:98;background:#00000059;display:block;position:fixed}.app-container{padding-top:calc(4.25rem + env(safe-area-inset-top))}}@media (max-width:640px){.timeline-container{padding:2rem 1rem}.tree-panel{padding:1.25rem}h1{font-size:2rem}h2{font-size:1.6rem}h3{font-size:1.3rem}.page-head{flex-wrap:wrap;gap:1rem}.app-container{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}.input-field,input[type=text],input[type=email],input[type=password],input[type=search],input[type=date],input[type=number],select,textarea{font-size:16px}}@media (max-width:430px){.nav-brand-name{letter-spacing:0;font-size:.9rem}.nav-logo{height:34px}}@media (max-width:360px){.nav-brand-name{font-size:.8rem}}.compress-progress{flex-direction:column;gap:.4rem;margin-top:1rem;display:flex}.compress-progress-label{color:var(--text-muted);font-size:.85rem}.compress-progress-track{background:var(--surface-border);border-radius:999px;height:8px;overflow:hidden}.compress-progress-bar{background:linear-gradient(90deg, var(--primary), var(--primary-hover));border-radius:999px;height:100%;transition:width .2s}.admin-task-badge{background:var(--primary);color:var(--btn-primary-text);box-shadow:0 0 0 3px color-mix(in srgb, var(--primary) 22%, transparent);border-radius:999px;align-items:center;gap:.28rem;padding:.22rem .55rem;font-size:.78rem;font-weight:700;line-height:1;text-decoration:none;transition:filter .2s,transform .2s;display:inline-flex}.admin-task-badge:hover{filter:brightness(1.08);transform:translateY(-1px)}.user-tag{letter-spacing:.02em;text-transform:uppercase;vertical-align:middle;border-radius:999px;margin-left:.5rem;padding:.08rem .5rem;font-size:.66rem;font-weight:700;display:inline-block}.user-tag-admin{background:var(--primary-soft);color:var(--primary)}.user-tag-temp{color:#7aa0d0;background:#7aa0d038}.user-tag-expired{color:#c76b7c;background:#c76b7c38}.user-tag-pending{color:#d4a644;background:#d4a64438}.btn-danger{color:#fff;background:#c0392b;border-color:#c0392b}.btn-danger:hover{filter:brightness(1.08)}.privacy-copy{color:var(--foreground-muted,var(--foreground));flex-direction:column;gap:.85rem;font-size:.92rem;line-height:1.6;display:flex}.privacy-copy p{margin:0}.privacy-copy strong{color:var(--foreground)}.timeline-search-row{flex-wrap:wrap;align-items:stretch;gap:.75rem;display:flex}.timeline-search-row .member-search{flex:260px}.timeline-person-filter{cursor:pointer;flex:none;max-width:220px}@media (max-width:640px){.timeline-person-filter{flex:100%;max-width:none}}.fulltree-wrap{align-items:stretch;gap:1rem;display:flex}.fulltree-scroll{flex:auto;min-width:0;max-height:78vh}.gen-guide{flex-direction:column;flex:none;justify-content:center;gap:.1rem;width:128px;max-height:78vh;padding:.5rem .25rem;display:flex;position:relative;overflow-y:auto}.gen-guide-line{background:var(--surface-border);width:1px;position:absolute;top:1.4rem;bottom:1.4rem;left:calc(.35rem + 5px)}.gen-guide-item{width:100%;color:var(--text-muted);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:8px;align-items:center;gap:.6rem;padding:.4rem .35rem;transition:color .15s,background .15s;display:flex;position:relative}.gen-guide-item:hover{background:var(--primary-soft);color:var(--foreground)}.gen-guide-dot{background:var(--background);border:2px solid var(--surface-border-strong);border-radius:50%;flex:none;width:11px;height:11px;transition:border-color .15s,background .15s}.gen-guide-item:hover .gen-guide-dot{border-color:var(--primary)}.gen-guide-text{flex-direction:column;min-width:0;line-height:1.2;display:flex}.gen-guide-name{white-space:nowrap;text-overflow:ellipsis;font-size:.8rem;font-weight:600;overflow:hidden}.gen-guide-years{opacity:.7;font-variant-numeric:tabular-nums;font-size:.7rem}.gen-guide-item.is-root{color:var(--foreground)}.gen-guide-item.is-root .gen-guide-dot{background:var(--primary);border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.gen-guide-item.is-root .gen-guide-name{color:var(--primary)}.fulltree-node.is-root{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft), 0 2px 8px #00000040}.fulltree-unions{pointer-events:none;z-index:4;position:absolute;inset:0;overflow:visible}.fulltree-marriage{fill:none;stroke:#7bb98e;stroke-width:1.4px;stroke-dasharray:4 4;stroke-linecap:round;opacity:.55}.fulltree-divorce{fill:none;stroke:#cf8b86;stroke-width:1.4px;stroke-dasharray:4 4;stroke-linecap:round;opacity:.6}.fulltree-divorce-x-bg{fill:var(--surface-raised);stroke:#cf8b86;stroke-width:1.1px;opacity:.92}.fulltree-divorce-x{stroke:#cf8b86;stroke-width:1.5px;stroke-linecap:round;fill:none}@media (max-width:760px){.fulltree-wrap{flex-direction:column}.gen-guide{flex-flow:wrap;justify-content:flex-start;gap:.25rem;width:100%;max-height:none}.gen-guide-line{display:none}.gen-guide-item{width:auto}}.spouse-list{flex-direction:column;gap:.4rem;margin:0 0 1rem;padding:0;list-style:none;display:flex}.spouse-item{border:1px solid var(--surface-border);background:var(--surface-raised);border-radius:10px;align-items:center;gap:.5rem;padding:.45rem .65rem;font-size:.92rem;display:flex}.spouse-item svg{color:var(--primary);flex-shrink:0}.spouse-name{font-weight:600}.spouse-name:hover{color:var(--primary)}.spouse-source{color:var(--text-muted);margin-left:auto;font-size:.72rem}.spouse-remove{width:24px;height:24px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;margin-left:auto;transition:background .15s,color .15s;display:inline-flex}.spouse-remove:hover{color:#c0392b;background:#c0392b2e}.spouse-add{flex-wrap:wrap;align-items:stretch;gap:.6rem;display:flex}.spouse-add select,.spouse-add input{flex:220px}.fulltree-band{fill:var(--primary);pointer-events:auto;cursor:pointer;transition:fill-opacity .25s}.fulltree-band-sep{stroke:var(--surface-border);stroke-width:1px;opacity:.55}.gen-guide-item.is-selected{background:var(--primary-soft);color:var(--foreground)}.gen-guide-item.is-selected .gen-guide-dot{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.gen-guide-item.is-selected .gen-guide-name{color:var(--primary)}.picture-story{padding:1.5rem}.picture-story-controls{flex-wrap:wrap;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.picture-story-controls .member-search{flex:260px}.picture-story-count{color:var(--text-muted);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.85rem}.picture-story-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:.6rem;max-height:52vh;margin-bottom:1.25rem;padding:.25rem;display:grid;overflow-y:auto}.picture-tile{border:2px solid var(--surface-border);background:var(--surface-raised);cursor:pointer;aspect-ratio:1;border-radius:12px;padding:0;transition:border-color .15s,transform .1s;position:relative;overflow:hidden}.picture-tile img{object-fit:cover;width:100%;height:100%;display:block}.picture-tile:hover{border-color:var(--primary)}.picture-tile:active{transform:scale(.98)}.picture-tile-check{color:#0000;background:#00000073;border:1.5px solid #ffffffbf;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;transition:background .15s,color .15s;display:flex;position:absolute;top:6px;right:6px}.picture-tile.selected{border-color:var(--primary)}.picture-tile.selected .picture-tile-check{background:var(--primary);color:#fff;border-color:var(--primary)}.picture-tile.selected img{opacity:.85}.picture-tile-context{color:#fff;text-align:left;white-space:nowrap;text-overflow:ellipsis;pointer-events:none;background:linear-gradient(#0000,#000000b8);padding:.9rem .45rem .3rem;font-size:.62rem;line-height:1.2;position:absolute;bottom:0;left:0;right:0;overflow:hidden}.picture-story-footer{flex-wrap:wrap;align-items:end;gap:1rem;display:flex}.picture-story-ai{cursor:pointer;align-items:center;gap:.4rem;padding-bottom:.65rem;font-size:.88rem;display:inline-flex}.chat-emoji-wrap{position:relative}.chat-emoji-on{color:var(--primary)}.chat-emoji-tray{z-index:30;border:1px solid var(--surface-border);border-radius:14px;grid-template-columns:repeat(8,1fr);gap:.15rem;width:min(320px,78vw);max-height:220px;padding:.5rem;display:grid;position:absolute;bottom:calc(100% + .5rem);left:0;overflow-y:auto;box-shadow:0 8px 28px #00000059}.chat-emoji-btn{cursor:pointer;background:0 0;border:none;border-radius:8px;padding:.3rem .2rem;font-size:1.25rem;line-height:1;transition:background .12s,transform .1s}.chat-emoji-btn:hover{background:var(--primary-soft);transform:scale(1.15)}.chat-react-wrap{display:inline-flex;position:relative}.chat-react-pop{z-index:30;border:1px solid var(--surface-border);white-space:nowrap;border-radius:999px;gap:.1rem;padding:.3rem .4rem;display:flex;position:absolute;bottom:calc(100% + .4rem);right:0;box-shadow:0 6px 20px #00000059}.chat-react-btn{cursor:pointer;background:0 0;border:none;border-radius:50%;padding:.25rem .3rem;font-size:1.15rem;line-height:1;transition:transform .1s,background .12s}.chat-react-btn:hover{background:var(--primary-soft);transform:scale(1.25)}.chat-reactions{flex-wrap:wrap;gap:.3rem;margin-top:.25rem;display:flex}.chat-message.mine .chat-reactions{justify-content:flex-end}.chat-reaction-chip{border:1px solid var(--surface-border);background:var(--surface-raised);cursor:pointer;border-radius:999px;align-items:center;gap:.25rem;padding:.12rem .5rem;font-size:.85rem;line-height:1.3;transition:border-color .15s,background .15s;display:inline-flex}.chat-reaction-chip:hover{border-color:var(--primary)}.chat-reaction-chip.mine{border-color:var(--primary);background:var(--primary-soft)}.chat-reaction-count{color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:.72rem;font-weight:700}.chat-reaction-chip.mine .chat-reaction-count{color:var(--primary)}.picture-tile-upload{cursor:default}.picture-tile-remove{color:#fff;cursor:pointer;background:#0000008c;border:none;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;transition:background .15s;display:flex;position:absolute;top:6px;left:6px}.picture-tile-remove:hover{background:#c0392b}.story-player{z-index:200;background:#0c0b09;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.story-stage{-webkit-user-select:none;user-select:none;touch-action:manipulation;cursor:pointer;background:#191612;width:min(100vw,56.25dvh);height:100dvh;position:relative;overflow:hidden}@media (min-width:700px){.story-stage{border-radius:18px;height:min(100dvh,92vh)}}.story-backdrop{object-fit:cover;filter:blur(28px)brightness(.45);width:calc(100% + 48px);height:calc(100% + 48px);position:absolute;inset:-24px}.story-media{object-fit:contain;width:100%;height:100%;animation:.45s story-slide-in;position:absolute;inset:0}.story-media.dimmed{filter:brightness(.82)}.story-media-plain{background:radial-gradient(120% 90% at 20% 10%, color-mix(in srgb, var(--primary) 38%, #191612), #14110d)}@keyframes story-slide-in{0%{opacity:0;transform:scale(1.03)}to{opacity:1;transform:scale(1)}}.story-scrim{pointer-events:none;background:linear-gradient(#00000073,#0000 16%),linear-gradient(#0000 68%,#0009);position:absolute;inset:0}.story-bars{top:calc(.6rem + env(safe-area-inset-top));z-index:3;gap:4px;display:flex;position:absolute;left:.6rem;right:.6rem}.story-bar{background:#ffffff47;border-radius:999px;flex:1;height:3px;overflow:hidden}.story-bar-fill{background:#fff;border-radius:999px;width:0;height:100%;display:block}.story-bar-fill.done{width:100%}.story-bar-fill.running{animation:linear forwards story-bar-run}@keyframes story-bar-run{0%{width:0}to{width:100%}}.story-close{top:calc(1.3rem + env(safe-area-inset-top));z-index:4;color:#fff;cursor:pointer;background:#00000073;border:none;border-radius:50%;justify-content:center;align-items:center;width:38px;height:38px;display:flex;position:absolute;right:.8rem}.story-close:hover{background:#000000a6}.story-copy{z-index:2;padding:0 1.4rem calc(2.2rem + env(safe-area-inset-bottom));pointer-events:none;color:#fff;flex-direction:column;justify-content:flex-end;display:flex;position:absolute;inset:0}.story-copy-title{text-align:center;margin-bottom:18vh}.story-copy-title h1{color:#fff;text-shadow:0 2px 18px #000000a6;margin-bottom:.6rem;font-size:clamp(1.9rem,6.5vw,2.8rem);line-height:1.15}.story-copy-meta{letter-spacing:.06em;opacity:.9;text-shadow:0 1px 10px #0009;font-size:.95rem}.story-copy-hint{letter-spacing:.14em;text-transform:uppercase;opacity:.65;margin-top:3.5rem;font-size:.75rem;animation:2.2s ease-in-out infinite story-hint-pulse}@keyframes story-hint-pulse{0%,to{opacity:.35}50%{opacity:.8}}.story-copy-text{font-family:var(--font-heading), Georgia, serif;text-shadow:0 1px 10px #000000d9,0 0 24px #0000008c;max-width:30rem;margin:0 auto;font-size:clamp(.9rem,3.4vw,1.1rem);line-height:1.5}.story-copy-caption{opacity:.92;text-shadow:0 1px 10px #000000b3;font-size:.9rem}.story-details-hint{bottom:calc(.6rem + env(safe-area-inset-bottom));z-index:2;color:#ffffffbf;letter-spacing:.12em;text-transform:uppercase;pointer-events:none;justify-content:center;align-items:center;gap:.3rem;font-size:.72rem;display:flex;position:absolute;left:0;right:0}.story-play-again{right:1.25rem;bottom:calc(1.25rem + env(safe-area-inset-bottom));z-index:60;background:var(--primary);color:#1a1712;cursor:pointer;border:none;border-radius:999px;align-items:center;gap:.45rem;padding:.7rem 1.2rem;font-size:.95rem;font-weight:700;transition:transform .15s;display:inline-flex;position:fixed;box-shadow:0 6px 24px #00000059}.story-play-again:hover{transform:scale(1.04)}.story-detail-actions{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.story-soundtrack{align-items:center;display:inline-flex}.story-soundtrack-btn{align-items:center;gap:.4rem;max-width:220px;display:inline-flex}.story-soundtrack-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.story-soundtrack-current{border:1px solid var(--surface-border);background:var(--surface-raised);border-radius:999px;align-items:center;gap:.2rem;padding-right:.3rem;display:inline-flex}.story-soundtrack-current .story-soundtrack-btn{background:0 0;border:none}.story-soundtrack-remove{width:24px;height:24px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.story-soundtrack-remove:hover{color:#c0392b;background:#c0392b2e}.story-soundtrack-error{margin-left:.5rem;font-size:.8rem}.story-music{top:calc(1.3rem + env(safe-area-inset-top));z-index:4;color:#fff;cursor:pointer;background:#00000073;border:none;border-radius:999px;align-items:center;gap:.35rem;max-width:60%;height:38px;padding:0 .7rem;display:inline-flex;position:absolute;left:.8rem}.story-music:hover{background:#000000a6}.story-music-name{text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:.25rem;max-width:12rem;font-size:.78rem;display:inline-flex;overflow:hidden}.story-ai-toggle{cursor:pointer;flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:1rem;font-size:.92rem;display:flex}.story-ai-toggle input{width:1.05rem;height:1.05rem}.story-ai-toggle svg{color:var(--primary)}.story-ai-toggle.disabled{cursor:default;opacity:.9}.story-ai-toggle.disabled svg{color:var(--text-muted)}.story-edit-open{border:1px dashed var(--surface-border);background:var(--surface-raised);border-radius:12px;flex-wrap:wrap;align-items:center;gap:.5rem;padding:.35rem .5rem;display:inline-flex}.story-edit-label{letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);padding-left:.2rem;font-size:.75rem}@media (max-width:640px){.timeline-line{left:19px;transform:none}.events-list{gap:2rem}.timeline-node-container,.timeline-node-container.left{flex-direction:row;justify-content:flex-start;align-items:stretch}.timeline-node-content{flex:auto;width:auto;min-width:0;margin-left:46px;padding:1.1rem 1.15rem}.timeline-icon{width:30px;height:30px;top:24px;left:19px;transform:translate(-50%)}.timeline-node-container:hover .timeline-icon{transform:translate(-50%)scale(1.1)}.timeline-circle{top:26px;left:19px;transform:translate(-50%)}.timeline-year{gap:.35rem;margin-bottom:.15rem;font-size:.78rem}.timeline-year svg{width:14px;height:14px}.timeline-title{font-size:1.12rem;line-height:1.22}.timeline-desc{-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;font-size:.85rem;line-height:1.45;display:-webkit-box;overflow:hidden}.timeline-cover{height:160px;margin-top:.9rem}.timeline-person{width:34px;height:34px}.timeline-person-sm{width:22px;height:22px}.timeline-journey{box-shadow:none;background:0 0;gap:.7rem;padding:4px 0;top:22px;left:19px;transform:translate(-50%)}.timeline-journey-label{display:none}.timeline-cluster,.dayblock{width:auto;margin-left:46px}.cluster-card{padding:1.1rem 1rem}.cluster-grid{grid-template-columns:40px 1fr;padding-bottom:4px;overflow-x:auto}}.event-body{padding:4rem 3rem;position:relative}.event-header{text-align:center;margin-bottom:3rem}.event-header.over-cover{margin-top:-4rem}.event-title{margin-top:1rem;font-size:clamp(1.5rem,6.5vw,3.25rem);line-height:1.12}.event-divider{border:none;border-top:1px solid var(--surface-border);margin:4rem 0}.event-gallery-head{text-align:center;margin-bottom:2rem}@media (max-width:640px){.event-hero{height:240px}.event-body{padding:1.75rem 1.15rem}.event-header{margin-bottom:1.75rem}.event-header.over-cover{margin-top:-2.25rem}.event-title{margin-top:.6rem}.event-meta{flex-wrap:wrap;justify-content:center;gap:.4rem 1rem;font-size:.76rem}.event-meta span{gap:.35rem}.event-meta svg{width:14px;height:14px}.event-description{font-size:1rem;line-height:1.7}.event-notes{padding:1rem 1.1rem}.event-divider{margin:2.25rem 0}.event-actions-row{flex-wrap:wrap;gap:.5rem}.event-actions-row .btn{padding:.5rem .9rem;font-size:.9rem}}
