@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-duration:initial}}}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.z-\[9999\]{z-index:9999}.container{width:100%}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.w-full{width:100%}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.rounded-full{border-radius:3.40282e38px}.border{border-style:var(--tw-border-style);border-width:1px}.bg-\[\#08081A\]{background-color:#08081a}.text-center{text-align:center}.text-\[var\(--accent-gold\)\]{color:var(--accent-gold)}.text-\[var\(--text-secondary\)\]{color:var(--text-secondary)}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.italic{font-style:italic}.shadow-\[0_0_30px_rgba\(251\,191\,36\,0\.15\)\]{--tw-shadow:0 0 30px var(--tw-shadow-color,#fbbf2426);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,ease);transition-duration:var(--tw-duration,0s)}.duration-500{--tw-duration:.5s;transition-duration:.5s}:root{--midnight:#08081a;--deep-violet:#1a1035;--violet-mid:#2d1b69;--amethyst:#7b5ea7;--amethyst-light:#a89bc2;--gold:#c9a96e;--gold-light:#e8c98a;--parchment:#e8d5b0;--parchment-dim:#b8a88a;--white:#fdfaf5;--font-display:"Cormorant Garamond", Georgia, serif;--font-body:"DM Sans", system-ui, sans-serif;--radius-sm:8px;--radius-md:16px;--radius-lg:24px;--radius-pill:999px;--shadow-gold:0 0 24px #c9a96e40, 0 0 80px #c9a96e14;--shadow-amethyst:0 0 32px #7b5ea759, 0 0 80px #7b5ea71f;--glow-node:0 0 40px #7b5ea799, 0 0 100px #7b5ea733;--panel-bg:#1a1035d1;--panel-border:#c9a96e33}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{background:var(--midnight);color:var(--parchment);font-family:var(--font-body);font-size:16px;line-height:1.6;overflow-x:hidden}.font-display{font-family:var(--font-display)}.font-body{font-family:var(--font-body)}h1,h2,h3{font-family:var(--font-display);line-height:1.1}#scene-canvas{z-index:0;width:100%;height:100%;position:fixed;inset:0}.scroll-container{z-index:1;pointer-events:none;position:relative}.glass-panel{background:var(--panel-bg);-webkit-backdrop-filter:blur(20px)saturate(180%);border:1px solid var(--panel-border);border-radius:var(--radius-lg)}.glass-panel-dark{-webkit-backdrop-filter:blur(24px)saturate(200%);border-radius:var(--radius-lg);background:#08081ae6;border:1px solid #c9a96e26}.gold-line{background:linear-gradient(90deg, transparent, var(--gold), transparent);height:1px}.btn-primary{font-family:var(--font-body);letter-spacing:.05em;border-radius:var(--radius-pill);border:1px solid var(--gold);color:var(--gold-light);cursor:pointer;white-space:nowrap;background:linear-gradient(135deg,#c9a96e2e,#c9a96e14);padding:.65rem 1.5rem;font-size:.875rem;font-weight:500;transition:all .25s}.btn-primary:hover{box-shadow:var(--shadow-gold);background:linear-gradient(135deg,#c9a96e52,#c9a96e26);transform:translateY(-1px)}.btn-primary:active{transform:translateY(0)}.btn-ghost{font-family:var(--font-body);border-radius:var(--radius-pill);color:var(--parchment-dim);cursor:pointer;background:0 0;border:1px solid #c9a96e40;padding:.65rem 1.25rem;font-size:.875rem;font-weight:400;transition:all .25s}.btn-ghost:hover{color:var(--parchment);border-color:#c9a96e80}.btn-amethyst{font-family:var(--font-body);letter-spacing:.04em;border-radius:var(--radius-pill);color:#fff;cursor:pointer;background:linear-gradient(135deg,#7b5ea7,#9b7ec7);border:none;padding:.75rem 1.75rem;font-size:.875rem;font-weight:500;transition:all .25s;box-shadow:0 4px 20px #7b5ea766}.btn-amethyst:hover{background:linear-gradient(135deg,#8b6eb7,#ab8ed7);transform:translateY(-2px);box-shadow:0 6px 30px #7b5ea78c}.btn-amethyst:disabled{opacity:.55;cursor:not-allowed;transform:none}.btn-danger{font-family:var(--font-body);border-radius:var(--radius-pill);color:#e07080;cursor:pointer;background:#dc32461a;border:1px solid #dc324666;padding:.5rem 1rem;font-size:.8rem;font-weight:500;transition:all .2s}.btn-danger:hover{background:#dc324633;border-color:#dc324699}.form-input{width:100%;font-family:var(--font-body);border-radius:var(--radius-sm);color:var(--parchment);background:#ffffff0a;border:1px solid #c9a96e33;outline:none;padding:.75rem 1rem;font-size:.9rem;transition:border-color .2s,box-shadow .2s}.form-input::placeholder{color:#b8a88a66}.form-input:focus{border-color:#c9a96e80;box-shadow:0 0 0 3px #c9a96e1a}.form-input:-webkit-autofill{-webkit-text-fill-color:var(--parchment);-webkit-box-shadow:inset 0 0 0 100px #1a1035}.form-label{font-family:var(--font-body);letter-spacing:.08em;text-transform:uppercase;color:var(--amethyst-light);margin-bottom:.4rem;font-size:.78rem;font-weight:500;display:block}textarea.form-input{resize:vertical;min-height:80px}select.form-input option{color:var(--parchment);background:#1a1035}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#c9a96e4d;border-radius:99px}::-webkit-scrollbar-thumb:hover{background:#c9a96e80}@keyframes pulse-glow{0%,to{opacity:.7;transform:scale(1)}50%{opacity:1;transform:scale(1.03)}}@keyframes float-slow{0%,to{transform:translateY(0)}50%{transform:translateY(-12px)}}@keyframes shimmer{0%{background-position:-200%}to{background-position:200%}}@keyframes slide-up{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes slide-in-right{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes slide-in-bottom{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes spin-slow{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.animate-slide-up{animation:.5s cubic-bezier(.16,1,.3,1) both slide-up}.animate-fade-in{animation:.4s both fade-in}.animate-float{animation:6s ease-in-out infinite float-slow}.text-shimmer{background:linear-gradient(90deg, var(--gold) 0%, var(--gold-light) 30%, var(--parchment) 50%, var(--gold-light) 70%, var(--gold) 100%);-webkit-text-fill-color:transparent;background-size:200%;-webkit-background-clip:text;background-clip:text;animation:4s linear infinite shimmer}.navbar{z-index:100;-webkit-backdrop-filter:blur(16px)saturate(180%);background:#08081a99;border-bottom:1px solid #c9a96e1a;justify-content:space-between;align-items:center;padding:.85rem 1.5rem;transition:background .3s;display:flex;position:fixed;top:0;left:0;right:0}.navbar-logo{font-family:var(--font-display);letter-spacing:.02em;color:var(--gold-light);align-items:center;gap:.5rem;font-size:1.35rem;font-weight:500;text-decoration:none;display:flex}@media (max-width:400px){.navbar{gap:.25rem;padding:.75rem}.navbar-logo{gap:.25rem;font-size:1.1rem}.navbar-logo svg{width:18px;height:18px}.navbar .btn-primary,.navbar .btn-ghost{padding:.5rem .75rem;font-size:.8rem}.add-member-text{display:none}.add-member-icon{font-size:1.2rem;line-height:1;display:inline!important}}.hero-overlay{z-index:1;pointer-events:none;background:radial-gradient(at 50% 0,#7b5ea714 0%,#0000 70%),radial-gradient(at 80% 80%,#c9a96e0d 0%,#0000 60%);position:fixed;inset:0}.hero-content{z-index:2;text-align:center;pointer-events:none;flex-direction:column;justify-content:center;align-items:center;min-height:100svh;padding:6rem 1.25rem 3rem;display:flex;position:relative}.hero-eyebrow{font-family:var(--font-body);letter-spacing:.22em;text-transform:uppercase;color:var(--amethyst-light);margin-bottom:1.2rem;font-size:.72rem;font-weight:500}.hero-title{font-family:var(--font-display);letter-spacing:-.01em;color:var(--parchment);margin-bottom:1.5rem;font-size:clamp(2.8rem,9vw,7rem);font-weight:300;line-height:1}.hero-title em{color:var(--gold-light);font-style:italic}.hero-subtitle{font-family:var(--font-body);color:var(--amethyst-light);max-width:480px;margin-bottom:2.5rem;font-size:clamp(.85rem,2.5vw,1.1rem);font-weight:300;line-height:1.7}.hero-cta{flex-wrap:wrap;justify-content:center;gap:.75rem;display:flex}.scroll-hint{opacity:.5;pointer-events:none;flex-direction:column;align-items:center;gap:.4rem;display:flex;position:absolute;bottom:2rem;left:50%;transform:translate(-50%)}.scroll-hint span{letter-spacing:.15em;text-transform:uppercase;color:var(--amethyst-light);font-size:.68rem}.scroll-arrow{background:linear-gradient(180deg, transparent, var(--gold));width:1px;height:40px;animation:2s ease-in-out infinite float-slow}.tree-section{z-index:2;flex-direction:column;align-items:center;min-height:100svh;padding-top:5rem;display:flex;position:relative}.tree-section-header{text-align:center;pointer-events:none;padding:2rem 1.25rem}.section-label{font-family:var(--font-body);letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-bottom:.75rem;font-size:.7rem;font-weight:500}.section-title{font-family:var(--font-display);color:var(--parchment);font-size:clamp(1.8rem,5vw,3.2rem);font-weight:400;line-height:1.15}.person-panel{z-index:200;flex-direction:column;width:min(440px,100vw);height:100%;animation:.4s cubic-bezier(.16,1,.3,1) both slide-in-right;display:flex;position:fixed;top:0;right:0;overflow:hidden;box-shadow:-8px 0 60px #0009}@media (max-width:640px){.person-panel{border-radius:var(--radius-lg) var(--radius-lg) 0 0;width:100%;height:80svh;animation:.4s cubic-bezier(.16,1,.3,1) both slide-in-bottom;inset:auto 0 0}}.person-panel-header{border-bottom:1px solid var(--panel-border);flex-shrink:0;align-items:center;gap:.75rem;padding:1.25rem 1.5rem 1rem;display:flex}.person-panel-body{flex:1;padding:1.25rem 1.5rem;overflow-y:auto}.person-panel-footer{border-top:1px solid var(--panel-border);flex-wrap:wrap;flex-shrink:0;gap:.6rem;padding:1rem 1.5rem;display:flex}.person-avatar{border:2px solid var(--gold);width:52px;height:52px;font-family:var(--font-display);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:1.4rem;font-weight:500;display:flex;overflow:hidden}.person-avatar-male{background:radial-gradient(135deg, #2d1b69, #4a3090)}.person-avatar-female{background:radial-gradient(135deg, #3d1b3f, #6b3060)}.person-avatar-other{background:radial-gradient(135deg, #1b2d3f, #305066)}.person-name-display{font-family:var(--font-display);color:var(--parchment);font-size:1.4rem;font-weight:500;line-height:1.2}.person-years{font-family:var(--font-body);color:var(--amethyst-light);margin-top:.1rem;font-size:.8rem}.relation-section{margin-bottom:1.25rem}.relation-label{font-family:var(--font-body);letter-spacing:.12em;text-transform:uppercase;color:var(--gold);margin-bottom:.5rem;font-size:.7rem;font-weight:500}.relation-chips{flex-wrap:wrap;gap:.4rem;display:flex}.relation-chip{border-radius:var(--radius-pill);color:var(--amethyst-light);cursor:pointer;background:#7b5ea726;border:1px solid #7b5ea74d;padding:.3rem .75rem;font-size:.8rem;transition:all .2s}.relation-chip:hover{color:var(--parchment);background:#7b5ea74d;border-color:#7b5ea780}.modal-overlay{z-index:300;-webkit-backdrop-filter:blur(8px);background:#08081ad9;justify-content:center;align-items:center;padding:1rem;animation:.25s both fade-in;display:flex;position:fixed;inset:0}.modal-box{width:100%;max-width:460px;max-height:90svh;padding:2rem;animation:.35s cubic-bezier(.16,1,.3,1) both slide-up;overflow-y:auto}@media (max-width:480px){.modal-box{border-radius:var(--radius-md);max-height:95svh;padding:1.5rem}}.modal-title{font-family:var(--font-display);color:var(--parchment);margin-bottom:.3rem;font-size:1.7rem;font-weight:500}.modal-subtitle{color:var(--amethyst-light);margin-bottom:1.5rem;font-size:.85rem}.drawer-overlay{z-index:250;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#08081ab3;animation:.2s both fade-in;position:fixed;inset:0}.drawer-panel{z-index:260;flex-direction:column;width:min(500px,100vw);height:100%;animation:.4s cubic-bezier(.16,1,.3,1) both slide-in-right;display:flex;position:fixed;top:0;right:0;overflow:hidden;box-shadow:-12px 0 80px #000000b3}@media (max-width:640px){.drawer-panel{border-radius:var(--radius-lg) var(--radius-lg) 0 0;width:100%;height:92svh;animation:.4s cubic-bezier(.16,1,.3,1) both slide-in-bottom;inset:auto 0 0}}.drawer-header{border-bottom:1px solid var(--panel-border);flex-shrink:0;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;display:flex}.drawer-title{font-family:var(--font-display);color:var(--parchment);font-size:1.4rem;font-weight:500}.drawer-body{flex-direction:column;flex:1;gap:1.1rem;padding:1.5rem;display:flex;overflow-y:auto}.drawer-footer{border-top:1px solid var(--panel-border);flex-shrink:0;justify-content:flex-end;gap:.6rem;padding:1.1rem 1.5rem;display:flex}.toast-container{z-index:400;pointer-events:none;flex-direction:column;align-items:center;gap:.5rem;display:flex;position:fixed;bottom:1.5rem;left:50%;transform:translate(-50%)}.toast{font-family:var(--font-body);border-radius:var(--radius-pill);white-space:nowrap;pointer-events:all;padding:.65rem 1.25rem;font-size:.85rem;animation:.3s cubic-bezier(.16,1,.3,1) both slide-up}.toast-success{color:#90dda0;background:#50aa7833;border:1px solid #50aa7880}.toast-error{color:#e07080;background:#dc324633;border:1px solid #dc324680}.icon-btn{width:36px;height:36px;color:var(--amethyst-light);cursor:pointer;background:0 0;border:1px solid #c9a96e33;border-radius:50%;justify-content:center;align-items:center;font-size:1rem;transition:all .2s;display:flex}.icon-btn:hover{color:var(--parchment);background:#ffffff0d;border-color:#c9a96e66}.loading-ring{border:2px solid #c9a96e26;border-top-color:var(--gold);border-radius:50%;width:40px;height:40px;animation:.8s linear infinite spin-slow}.empty-state{text-align:center;color:var(--amethyst-light);padding:3rem 1.5rem}.empty-state h3{font-family:var(--font-display);color:var(--parchment-dim);margin-bottom:.5rem;font-size:1.4rem;font-weight:400}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:4px}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-duration{syntax:"*";inherits:false}
