body,html{height:100%;margin:0;padding:0;touch-action:pan-x pan-y}button,input,select,textarea{font-size:clamp(16px,1rem,18px)}.App{display:flex;flex-direction:column;height:100%}.center-content,.center-content-column{display:flex;justify-content:center;align-items:center}.center-content-column{flex-direction:column}.auth-form-container{display:flex;justify-content:center;align-items:center;max-width:500px;margin:0 auto;height:80vh;border-radius:30px}.header{display:flex;justify-content:space-between;margin:10px 20px}.button-nav{padding:10px 20px;text-decoration:none;color:#fff;background-color:#0f172a;background-color:var(--color-accent);border:none;border-radius:5px;cursor:pointer;transition:background-color .3s ease}.button-nav:hover{background-color:color-mix(in oklab,#0f172a 85%,#fff);background-color:color-mix(in oklab,var(--color-accent) 85%,#fff)}.link-spacing{margin-right:20px}.auth-input{width:60%;border-radius:10px;border:1px solid color-mix(in oklab,#0f172a 25%,transparent);border:1px solid color-mix(in oklab,var(--color-text) 25%,transparent);font-size:30px}.errors{color:red;font-size:15px}.grid-container{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));grid-gap:20px;gap:20px;margin:0 auto;width:85%}.grid-item{border:1px solid color-mix(in oklab,#0f172a 20%,transparent);border:1px solid color-mix(in oklab,var(--color-text) 20%,transparent);padding:20px;background-color:#fff;background-color:var(--color-surface);position:relative;overflow:hidden}.grid-item:before{content:"";display:block;padding-top:100%}.family-tree-index-header{display:flex;justify-content:space-between;align-items:center;margin:10px 20px;width:80%}.family-tree-index-container{flex-direction:column;width:100%}.family-tree-index-container,.family-tree-page{display:flex;justify-content:center;align-items:center;border-radius:30px}.no-underline{text-decoration:none!important}.no-underline,.no-underline:active{color:inherit!important}@media (max-width:700px){.button-nav{padding:15px 25px;font-size:12px;margin:10px 0}}.family-tree-show{flex-grow:1}.node-editor-componenets{display:flex;justify-content:center;align-items:center;flex-direction:column}.node-form{align-items:start;background-color:#f8f7f4;padding:10px 10px 0;width:80%}.floater-container{height:30vh;overflow:auto;display:flex;justify-content:flex-start;align-items:center;flex-direction:column}.node-form.minimized{width:10px;height:40px}.node-form.minimized .node-form-button,.node-form.minimized label{display:none}.node-form.minimized button{width:100%;height:100%;font-size:16px}.loading-bar{background:var(--color-accent)}.signup-container{display:flex;height:100vh;flex-direction:row}.signup-left{background-color:#dae8fc;flex:1 1}.connections,.signup-left{display:flex;align-items:center;justify-content:center}.connections{flex-wrap:wrap;max-width:80%;margin:auto}.connection{width:60px;height:60px;background-color:#fff;border-radius:50%;margin:10px;display:flex;align-items:center;justify-content:center}.signup-right{flex:1 1;flex-direction:column;align-items:stretch}.signup-right,.signup-right-top{color:#fff;display:flex;justify-content:center}.signup-right-top{background-color:#5271ff;padding:20px;flex-direction:column;align-items:center;font-family:Roboto,sans-serif;font-size:x-large;height:20vh}.signup-right-bottom{background-color:#fff;color:#000;padding-left:20px;padding-right:20px;padding-top:60px;flex:1 1;display:flex;flex-direction:column;align-items:center;justify-content:start}.signup-right h2,.signup-right p{margin-bottom:20px}.signup-right form{display:flex;flex-direction:column;align-items:stretch;width:80%}.signup-right-bottom label{display:block;font-size:14px;margin-bottom:5px;color:#333;display:flex;flex-direction:column;align-items:stretch}.signup-right-bottom input{padding:10px;margin-bottom:20px;border:1px solid #ddd;border-radius:5px;font-size:16px;color:#333;transition:border-color .2s;height:4vh}.signup-right-bottom input:focus{border-color:#6a4cd6;outline:none}.signup-right a{color:#ffeb3b;text-decoration:none}.signup-right a:hover{text-decoration:underline}@media (max-width:768px){.link-spacing{margin-right:20px}.signup-container{flex-direction:column}.signup-left{order:2;flex:none;display:none}.signup-right{order:1;width:100%}.signup-right form{width:100%}}.tree-form-container{display:flex;justify-content:center;align-items:center;width:100%;height:100vh}.tree-form{display:flex;flex-direction:column;align-items:center;padding:20px;width:80%}.tree-form input{border:1px solid #ddd;border-radius:5px;font-size:16px;color:#333;transition:border-color .2s;height:5vh;width:100%;font-size:1.5em}.App-logo{height:40vmin;pointer-events:none}@media (prefers-reduced-motion:no-preference){.App-logo{animation:App-logo-spin 20s linear infinite}}.App-header{background-color:#282c34;min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:calc(10px + 2vmin);color:#fff}.App-link{color:#61dafb}@keyframes App-logo-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.sticky-component{position:fixed;bottom:0;width:100%}body,html{min-height:100%;margin:0!important}#react-app{height:100vh;display:flex;flex-direction:column}#react-app::-webkit-scrollbar,body::-webkit-scrollbar,html::-webkit-scrollbar{display:none}#react-app,body,html{-ms-overflow-style:none;scrollbar-width:none}.subview-header{display:flex;flex-direction:column;align-items:center}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f8fafc;background-color:var(--color-bg);color:#0f172a;color:var(--color-text);font-family:Roboto,sans-serif}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.nav-buttons{display:flex;align-items:center;grid-gap:1rem;gap:1rem}.nav-button{padding:.8rem 1.8rem;font-size:1rem;font-weight:600;border:none;border-radius:50px;cursor:pointer;transition:all .3s ease;text-decoration:none;display:inline-block;text-align:center;line-height:1;box-shadow:0 2px 10px rgba(0,0,0,.1)}.nav-button-primary{background:linear-gradient(45deg,#0f172a,#0f172a);background:linear-gradient(45deg,var(--color-accent),var(--color-accent));color:#fff;border:2px solid transparent}.nav-button-primary:hover{background:linear-gradient(45deg,color-mix(in oklab,#0f172a 85%,#fff),#0f172a);background:linear-gradient(45deg,color-mix(in oklab,var(--color-accent) 85%,#fff),var(--color-accent));transform:translateY(-2px);box-shadow:0 4px 15px rgba(0,0,0,.2)}.nav-button-secondary{background:rgba(var(--color-accent-rgb),.1);color:#0f172a;color:var(--color-accent);border:2px solid rgba(var(--color-accent-rgb),.3);backdrop-filter:blur(10px)}.nav-button-secondary:hover{background:rgba(var(--color-accent-rgb),.2);border-color:#0f172a;border-color:var(--color-accent);transform:translateY(-2px)}.nav-button-outline{background:transparent;color:#0f172a;color:var(--color-accent);border:2px solid #0f172a;border:2px solid var(--color-accent)}.nav-button-outline:hover{background:#0f172a;background:var(--color-accent);color:#fff;transform:translateY(-2px)}.nav-button:active{transform:translateY(0)}.brand-link:focus,.nav-button:focus{outline:3px solid rgba(var(--color-accent-rgb),.5);outline-offset:2px}.brand-link:focus{border-radius:8px}.app-header{position:sticky;top:0;z-index:30;border-bottom:1px solid rgba(148,163,184,.7);background:hsla(0,0%,100%,.8);backdrop-filter:blur(8px)}@supports (backdrop-filter:none){.app-header.supports-backdrop{background:hsla(0,0%,100%,.6)}}.app-header__inner{max-width:72rem;margin-left:auto;margin-right:auto;padding:.75rem 1rem;display:flex;align-items:center;justify-content:space-between}.app-header__left{display:flex;align-items:center;grid-gap:.75rem;gap:.75rem}.app-header__back-btn{padding:.5rem;border-radius:.75rem;background:transparent;border:none;cursor:pointer;color:#0f172a;display:inline-flex;align-items:center;justify-content:center;transition:background .15s ease}.app-header__back-btn:hover{background:#f1f5f9}.app-header__back-btn:focus{outline:2px solid #334155;outline-offset:2px}.app-header__brand{font-weight:600;letter-spacing:-.015em;font-size:1.05rem}.app-nav{display:flex;align-items:center;grid-gap:.5rem;gap:.5rem}.app-nav__link{text-decoration:none;font-size:.875rem;font-weight:500;padding:.375rem .75rem;border-radius:9999px;color:#0f172a;display:inline-flex;align-items:center;justify-content:center;line-height:1.2;transition:background .18s ease,color .18s ease}.app-nav__link:hover{background:#f1f5f9}.app-nav__link:focus{outline:2px solid #334155;outline-offset:2px}.app-nav__link--primary{background:#0f172a;color:#fff}.app-nav__link--primary:hover{background:#1e293b}.app-nav__link--neutral{background:transparent}.app-nav__link--neutral:hover{background:#f1f5f9}@media (max-width:480px){.app-header__inner{padding-left:.75rem;padding-right:.75rem}.app-nav__link{padding:.35rem .65rem}}.app-header__menu-toggle{display:none;background:transparent;border:none;padding:.5rem;border-radius:.5rem;cursor:pointer;line-height:0;color:#0f172a;transition:background .15s ease}.app-header__menu-toggle:hover{background:#f1f5f9}.app-header__menu-toggle:focus{outline:2px solid #334155;outline-offset:2px}.app-header__menu-toggle-bars{width:20px;height:20px;position:relative;display:inline-block}.app-header__menu-toggle-bars span{position:absolute;left:0;right:0;height:2px;background:currentColor;border-radius:2px;transition:transform .25s ease,opacity .25s ease}.app-header__menu-toggle-bars span:first-child{top:3px}.app-header__menu-toggle-bars span:nth-child(2){top:9px}.app-header__menu-toggle-bars span:nth-child(3){top:15px}.app-header__menu-toggle[aria-expanded=true] .app-header__menu-toggle-bars span:first-child{transform:translateY(6px) rotate(45deg)}.app-header__menu-toggle[aria-expanded=true] .app-header__menu-toggle-bars span:nth-child(2){opacity:0}.app-header__menu-toggle[aria-expanded=true] .app-header__menu-toggle-bars span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}.app-nav--mobile-panel,.app-nav--overlay{display:none}.app-nav--open.app-nav--mobile-panel{display:flex;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-sizing:border-box;width:min(92vw,420px);max-height:calc(100vh - 4rem);flex-direction:column;padding:4.25rem 1.75rem 2.25rem;grid-gap:.9rem;gap:.9rem;background:hsla(0,0%,100%,.95);backdrop-filter:blur(18px) saturate(1.4);box-shadow:0 8px 32px rgba(0,0,0,.28),0 2px 8px rgba(0,0,0,.18);border:1px solid hsla(0,0%,100%,.4);border-radius:18px;z-index:40;overflow-y:auto;animation:panelScaleIn .3s cubic-bezier(.4,0,.2,1);-webkit-overflow-scrolling:touch}.app-nav--open.app-nav--overlay{display:block;position:fixed;inset:0;background:rgba(0,0,0,.38);z-index:35;animation:overlayFadeIn .22s ease}@keyframes panelScaleIn{0%{transform:translate(-50%,-50%) scale(.92);opacity:0}60%{opacity:1}to{transform:translate(-50%,-50%) scale(1);opacity:1}}@keyframes overlayFadeIn{0%{opacity:0}to{opacity:1}}.app-nav__close-btn{position:absolute;top:.85rem;right:.85rem;background:hsla(0,0%,100%,.6);border:1px solid rgba(0,0,0,.1);padding:.45rem;border-radius:.65rem;cursor:pointer;line-height:0;color:#0f172a;display:inline-flex;align-items:center;justify-content:center;transition:background .18s ease,box-shadow .18s ease}.app-nav__close-btn:hover{background:#fff;box-shadow:0 2px 6px rgba(0,0,0,.12)}.app-nav__close-btn:focus{outline:2px solid #334155;outline-offset:2px}.app-nav--mobile-panel .app-nav__group{display:flex;flex-direction:column;grid-gap:.4rem;gap:.4rem;margin-bottom:1rem}.app-nav--mobile-panel hr{border:0;height:1px;background:linear-gradient(90deg,rgba(0,0,0,.08),rgba(0,0,0,.02));margin:.75rem 0 1rem}.body--lock-scroll{overflow:hidden;touch-action:none}@media (prefers-reduced-motion:reduce){.app-nav--open.app-nav--mobile-panel,.app-nav--open.app-nav--overlay{animation:none}.app-header__menu-toggle-bars span{transition:none}}@media (max-width:760px){.app-header__inner{grid-gap:.5rem;gap:.5rem}.app-nav{display:none}.app-header__menu-toggle{display:inline-flex;align-items:center;justify-content:center}.app-nav--mobile-panel .app-nav__link{font-size:1rem;padding:.6rem .9rem}.app-nav--mobile-panel .app-nav__link--primary{box-shadow:inset 0 0 0 1px #0f172a}}@media (max-width:480px){.app-nav--open.app-nav--mobile-panel{width:min(96vw,460px);border-radius:14px;padding:4rem 1.25rem 2rem}.app-header__menu-toggle{padding:.6rem}}@media (max-width:360px){.app-nav--open.app-nav--mobile-panel{width:96vw;padding:3.5rem 1rem 1.75rem}}@supports(padding:max(0px)){.app-nav--open.app-nav--mobile-panel{padding-left:max(1rem,env(safe-area-inset-left));padding-right:max(1rem,env(safe-area-inset-right))}}.index-page-header{max-width:72rem;margin:0 auto;padding:2.5rem 1rem 0}.index-page-header__top{display:flex;align-items:flex-end;justify-content:space-between;grid-gap:1rem;gap:1rem;flex-wrap:wrap}.index-page-header__titles h1{font-size:1.5rem;line-height:1.2;font-weight:600;letter-spacing:-.015em;margin:0}.index-page-header__titles p{margin-top:.25rem;color:var(--color-text-muted);font-size:.95rem}.index-page-header__actions{display:flex;align-items:center;grid-gap:.5rem;gap:.5rem}.index-page-header__search-wrapper{position:relative}.index-page-header__search-input{width:16rem;border:1px solid var(--color-border);background:var(--color-surface);padding:.5rem .75rem;font-size:.8125rem;border-radius:.75rem;box-shadow:0 1px 2px rgba(var(--slate-900-rgb),.06);outline:none;color:var(--color-text)}.index-page-header__search-input::-moz-placeholder{color:var(--color-text-subtle)}.index-page-header__search-input::placeholder{color:var(--color-text-subtle)}.index-page-header__search-input:focus{box-shadow:0 0 0 2px rgba(var(--slate-900-rgb),.1)}.index-page-header__new-btn{display:inline-flex;align-items:center;grid-gap:.5rem;gap:.5rem;background:var(--color-accent);color:var(--color-accent-contrast);padding:.5rem 1rem;font-size:.8125rem;font-weight:500;border-radius:.75rem;border:1px solid var(--color-accent);cursor:pointer;box-shadow:0 2px 4px rgba(var(--slate-900-rgb),.1);transition:box-shadow .2s ease,transform .15s ease,background .2s ease}.index-page-header__new-btn:hover{box-shadow:0 4px 12px rgba(var(--slate-900-rgb),.18)}.index-page-header__new-btn:active{transform:scale(.99)}.index-page-header__tabs{display:flex;align-items:center;grid-gap:.5rem;gap:.5rem;margin-top:1.5rem}.index-page-header__tab-btn{border:none;cursor:pointer;font-size:.8125rem;font-weight:500;padding:.375rem .75rem;border-radius:999px;background:transparent;color:var(--color-text-muted);transition:background .18s ease,color .18s ease}.index-page-header__tab-btn:hover{background:var(--color-accent-soft)}.index-page-header__tab-btn--active{background:rgba(var(--slate-900-rgb),.05);color:var(--color-text)}@media (max-width:640px){.index-page-header__search-input{width:13rem}.index-page-header__top{align-items:stretch}}@media (max-width:480px){.index-page-header{padding-top:2rem}.index-page-header__search-input{width:100%}.index-page-header__actions{flex:1 1 100%;justify-content:space-between}}.index-card-grid-wrapper{max-width:72rem;margin:0 auto;padding:1.5rem 1rem 6rem}.index-card-grid{list-style:none;margin:0;padding:0;display:grid;grid-gap:1rem;gap:1rem;grid-template-columns:1fr}@media (max-width:700px){.index-card-grid{grid-template-columns:repeat(auto-fill,minmax(310px,1fr))}}@media (min-width:700px){.index-card-grid{grid-template-columns:repeat(2,minmax(310px,1fr))}}@media (min-width:1024px){.index-card-grid{grid-template-columns:repeat(3,minmax(310px,1fr))}}.index-card{width:100%;text-align:left;background:var(--color-surface);border:1px solid var(--color-border);padding:1.25rem;border-radius:1rem;cursor:pointer;box-shadow:0 1px 2px rgba(var(--slate-900-rgb),.06);display:block;transition:box-shadow .22s ease,transform .22s ease,border-color .22s ease;position:relative;color:var(--color-text);-webkit-appearance:none;-moz-appearance:none;appearance:none}.index-card:hover{box-shadow:0 4px 12px rgba(var(--slate-900-rgb),.18);transform:translateY(-2px)}.index-card:focus{outline:2px solid var(--color-focus-outline);outline-offset:2px}.index-card__top{display:flex;align-items:flex-start;justify-content:space-between;grid-gap:.5rem;gap:.5rem}.index-card__icon-circle{display:inline-flex;height:2.5rem;width:2.5rem;align-items:center;justify-content:center;border-radius:999px;background:rgba(var(--slate-900-rgb),.05);flex-shrink:0;color:var(--color-text)}.index-card__menu-icon-wrapper{transition:opacity .25s ease;display:inline-flex;color:var(--color-text-muted)}.index-card__menu-icon-wrapper--visible{opacity:1!important}.index-card__info-btn{background:transparent;border:none;padding:4px;cursor:pointer;display:inline-flex;color:inherit}.index-card__info-btn:hover{opacity:.85}.index-card__title{margin:1rem 0 0;font-size:1rem;font-weight:600;letter-spacing:-.01em;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--color-text)}.index-card__meta{margin-top:.25rem;font-size:.8125rem;color:var(--color-text-subtle)}.index-card__chip{margin-top:1rem;display:inline-flex;align-items:center;grid-gap:.5rem;gap:.5rem;background:rgba(var(--slate-900-rgb),.05);padding:.25rem .75rem;font-size:.75rem;font-weight:500;border-radius:999px;color:var(--slate-700)}.index-card__chip svg{height:1rem;width:1rem}.index-card__saturn-icon,.index-card__tree-icon{display:block;width:1.5rem;height:1.5rem;color:var(--color-text);color:var(--color-accent,var(--color-text))}@media (prefers-reduced-motion:reduce){.index-card,.index-card__menu-icon-wrapper{transition:none}}.family-tree-show{display:flex;flex-direction:column;height:100%;font-family:Arial,Helvetica,sans-serif;overflow:hidden}.tree-placeholder{width:100%;height:100%;background:var(--color-surface);border:2px dashed color-mix(in oklab,var(--color-text) 20%,transparent);border-radius:16px}.family-tree{justify-content:center;align-items:center;flex-direction:column;flex:1 1;padding:1rem}.family-tree,.family-tree-show-editor{display:flex;overflow:hidden;min-height:0}.family-tree-show-editor{background:#fff;border-radius:20px 20px 0 0;box-shadow:0 -5px 30px rgba(0,0,0,.1);padding:0;position:relative;z-index:10;transition:all .3s ease;flex-direction:column;height:40vh}.family-tree-show-editor.minimized{border-radius:10px 10px 0 0;padding:0;box-shadow:0 -2px 15px rgba(0,0,0,.1);height:auto;flex-shrink:0}.node-editor-actions{display:flex;justify-content:center;align-items:center;grid-gap:1rem;gap:1rem;margin-bottom:1rem;padding:1rem;border-bottom:2px solid #f0f0f0;background:#fff;position:sticky;top:0;z-index:20;border-radius:20px 20px 0 0;box-shadow:0 2px 10px rgba(0,0,0,.1)}.node-editor-actions.minimized{margin-bottom:0;margin-top:auto;padding:.5rem 1rem;border-bottom:none;border-radius:10px 10px 0 0;box-shadow:0 1px 5px rgba(0,0,0,.1)}.family-tree-show-editor>*{visibility:visible;opacity:1}.editor-content{flex:1 1;overflow-y:auto;padding:1.5rem;min-height:0}.editor-content.minimized{display:none}.editor-component-selector{grid-gap:.5rem;gap:.5rem}.editor-component-selector label{font-size:.9rem;color:#333;grid-gap:.5rem;gap:.5rem}.editor-component-selector select{border:2px solid #e0e0e0;font-size:.9rem;background:#f8f9fa;padding:.8rem 2.5rem .8rem 1rem;min-width:200px}.editor-component-selector select:focus,.share-form{background:#fff}.share-form{display:flex;flex-direction:column;grid-gap:1.5rem;gap:1.5rem;max-width:400px;margin:0 auto;padding:2rem;border-radius:20px;box-shadow:0 10px 30px rgba(0,0,0,.1)}.share-form label{font-size:1rem;font-weight:600;color:#333;line-height:1.5;margin-bottom:.5rem}.share-form input[type=text]{width:100%;padding:.8rem 1rem;border:2px solid #e0e0e0;border-radius:10px;font-size:1rem;background:#f8f9fa;transition:all .3s ease;box-sizing:border-box}.share-form input[type=text]:focus{outline:none;border-color:var(--color-accent);background:#fff;box-shadow:0 0 0 3px color-mix(in oklab,var(--color-accent) 20%,transparent)}.share-form input[type=text]:disabled{background:#f0f0f0;color:#999;cursor:not-allowed}.share-form input[type=text]::-moz-placeholder{color:#999;font-style:italic}.share-form input[type=text]::placeholder{color:#999;font-style:italic}.share-form button{padding:1rem 2rem;background:linear-gradient(45deg,#4caf50,#45a049);color:#fff;border:none;border-radius:12px;font-size:1.1rem;font-weight:600;cursor:pointer;transition:all .3s ease;text-transform:uppercase;letter-spacing:.5px;box-shadow:0 4px 15px rgba(76,175,80,.3)}.share-form button:hover:not(:disabled){background:linear-gradient(45deg,#45a049,#4caf50);transform:translateY(-2px);box-shadow:0 6px 20px rgba(76,175,80,.4)}.share-form button:active:not(:disabled){transform:translateY(0)}.share-form button:disabled{background:#ccc;cursor:not-allowed;transform:none;box-shadow:none}.share-form button:focus:not(:disabled){outline:3px solid rgba(76,175,80,.5);outline-offset:2px}.family-tree-show-editor .node-form{width:100%;max-width:none;margin:0;background:transparent;box-shadow:none;border:none;padding:0}.family-tree-show-editor .node-form:hover{border-color:transparent;box-shadow:none}.family-tree-show-editor .floater-container{height:30vh;overflow:auto;display:flex;justify-content:flex-start;align-items:center;flex-direction:column;background:#f8f9fa;border-radius:15px;padding:1rem;margin-top:1rem}.download-btn{position:fixed;bottom:2rem;right:2rem;width:60px;height:60px;background:linear-gradient(45deg,#ff6b6b,#ff8e8e);color:#fff;border:none;border-radius:50%;font-size:1.5rem;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 15px hsla(0,100%,71%,.3);z-index:1000}.download-btn:hover{background:linear-gradient(45deg,#ff5252,#ff6b6b);transform:scale(1.1);box-shadow:0 6px 20px hsla(0,100%,71%,.4)}.download-btn:active{transform:scale(1.05)}.download-btn:focus{outline:3px solid hsla(0,100%,71%,.5);outline-offset:2px}.loading-overlay{position:fixed;width:100%;height:100%;background:rgba(0,0,0,.7);z-index:9999}.loading-spinner{border:5px solid #f3f3f3;border-top:5px solid var(--color-accent)}@media (max-width:768px){.editor-content{padding:1rem}.node-editor-actions{flex-direction:column;grid-gap:.5rem;gap:.5rem;padding:.75rem}.editor-toggle-btn{width:50%;margin-bottom:.5rem;margin-top:.5rem}.share-form{padding:1.5rem}.download-btn{bottom:1rem;right:1rem;width:50px;height:50px;font-size:1.2rem}}@media (max-width:480px){.family-tree{padding:.5rem}.editor-content{padding:1rem}.node-editor-actions{padding:.5rem}.share-form{padding:1rem}.editor-toggle-btn{padding:.7rem 1.2rem;font-size:.8rem}.editor-component-selector select{padding:.7rem;font-size:.8rem}}.svg-renderer-container{position:relative;overflow:hidden}.svg-renderer-container,.svg-renderer-container svg{flex:1 1 auto;min-height:0;width:100%;height:100%;display:flex}.svg-renderer-container svg{overflow:visible;touch-action:none}.svg-renderer-host{position:relative;min-height:320px;height:60vh;max-height:70vh;width:100%;display:flex}.modal-tree-host{max-height:70vh}@media (max-width:768px){.svg-renderer-host{height:50vh;max-height:none}}.node-form{display:flex;flex-direction:column;align-items:flex-start;background:var(--color-surface);padding:2rem;border-radius:20px;box-shadow:0 10px 30px rgba(0,0,0,.1);width:100%;max-width:400px;margin:1rem 0;border:2px solid color-mix(in oklab,var(--color-text) 10%,transparent);font-family:Arial,Helvetica,sans-serif;transition:all .3s ease}.node-form:hover{box-shadow:0 15px 40px rgba(0,0,0,.15);border-color:var(--color-accent)}.node-form label{font-size:1rem;font-weight:600;color:var(--color-text);margin-bottom:.5rem;display:block;width:100%;line-height:1.5}.node-form label:not(:first-child){margin-top:1.5rem}.node-form input[type=file],.node-form input[type=text],.node-form select{width:100%;padding:.8rem 1rem;border:2px solid color-mix(in oklab,var(--color-text) 15%,transparent);border-radius:10px;font-size:1rem;background:color-mix(in oklab,var(--color-surface) 92%,var(--color-bg));transition:all .3s ease;margin-top:.5rem;box-sizing:border-box}.node-form input[type=file]:focus,.node-form input[type=text]:focus,.node-form select:focus{outline:none;border-color:var(--color-accent);background:var(--color-surface);box-shadow:0 0 0 3px color-mix(in oklab,var(--color-accent) 20%,transparent)}.node-form input[type=text]::-moz-placeholder{color:#999;font-style:italic}.node-form input[type=text]::placeholder{color:#999;font-style:italic}.node-form select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3E%3Cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3E%3C/svg%3E");background-position:right .5rem center;background-repeat:no-repeat;background-size:1.5rem 1.5rem;padding-right:2.5rem;cursor:pointer}.node-form-sex-options{display:flex;grid-gap:1.5rem;gap:1.5rem;margin-top:.5rem;align-items:center}.node-form-sex-option{display:flex;align-items:center;grid-gap:.5rem;gap:.5rem;cursor:pointer;font-weight:500;color:#555}.node-form input[type=checkbox]{width:20px;height:20px;margin:0;cursor:pointer;accent-color:var(--color-accent)}.node-form input[type=checkbox]:checked+span{color:var(--color-accent);font-weight:600}.node-form-instructions{background:linear-gradient(135deg,var(--color-accent),color-mix(in oklab,var(--color-accent) 80%,var(--color-accent-2)));color:#fff;padding:1rem 1.5rem;border-radius:15px;margin-bottom:1rem;text-align:center;font-weight:500;width:100%;box-sizing:border-box}.node-form-button{width:100%;margin-top:2rem}.node-form-button .button-nav{width:100%;padding:1rem 2rem;background:linear-gradient(45deg,var(--color-accent),var(--color-accent));color:#fff;border:none;border-radius:12px;font-size:1.1rem;font-weight:600;cursor:pointer;transition:all .3s ease;text-transform:uppercase;letter-spacing:.5px;box-shadow:0 4px 15px color-mix(in oklab,var(--color-accent) 30%,transparent)}.node-form-button .button-nav:hover{background:linear-gradient(45deg,color-mix(in oklab,var(--color-accent) 85%,#fff),var(--color-accent));transform:translateY(-2px);box-shadow:0 6px 20px color-mix(in oklab,var(--color-accent) 40%,transparent)}.node-form-button .button-nav:active{transform:translateY(0)}.node-form-button .button-nav:focus{outline:3px solid rgba(102,126,234,.5);outline-offset:2px}.node-form input[type=file]{padding:.6rem;background:#fff;border:2px dashed #e0e0e0;border-radius:10px;cursor:pointer;transition:all .3s ease}.node-form input[type=file]:hover{border-color:var(--color-accent);background:#f8f9ff}.node-form input[type=file]:focus{border-color:var(--color-accent);background:#fff;box-shadow:0 0 0 3px color-mix(in oklab,var(--color-accent) 20%,transparent)}.node-form br{display:none}.node-form.minimized{width:60px;height:60px;overflow:hidden;padding:0;border-radius:50%;background:linear-gradient(45deg,var(--color-accent),var(--color-accent));cursor:pointer;display:flex;align-items:center;justify-content:center;position:relative}.node-form.minimized:after{content:"⚙️";font-size:1.5rem;color:#fff}.node-form.minimized .node-form-button,.node-form.minimized input,.node-form.minimized label,.node-form.minimized select{display:none}.node-form.minimized:hover{transform:scale(1.1);box-shadow:0 8px 25px rgba(102,126,234,.4)}@media (max-width:768px){.node-form{padding:1.5rem;max-width:100%}.node-form-sex-options{flex-direction:column;align-items:flex-start;grid-gap:1rem;gap:1rem}.node-form-button .button-nav{padding:.9rem 1.5rem;font-size:1rem}}@media (max-width:480px){.node-form{padding:1rem;margin:.5rem 0}.node-form label{font-size:.9rem}.node-form input[type=file],.node-form input[type=text],.node-form select{padding:.7rem;font-size:.9rem}}.node-form-toggles-container{width:100%;margin:1.5rem 0;display:flex;flex-direction:column;grid-gap:1rem;gap:1rem}.node-form-partner-toggle{width:100%;padding:1rem;background:#f8f9fa;border:1px solid #e0e0e0;border-radius:10px}.partner-switch{display:flex;align-items:center;grid-gap:.75rem;gap:.75rem;cursor:pointer;font-size:1rem;font-weight:500;color:#333}.partner-switch input[type=checkbox]{display:none}.partner-switch-slider{position:relative;width:50px;height:26px;background-color:#ccc;border-radius:26px;transition:all .3s ease;cursor:pointer;flex-shrink:0}.partner-switch-slider:before{content:"";position:absolute;height:20px;width:20px;left:3px;top:3px;background-color:#fff;border-radius:50%;transition:all .3s ease;box-shadow:0 2px 4px rgba(0,0,0,.2)}.partner-switch input[type=checkbox]:checked+.partner-switch-slider{background:linear-gradient(45deg,var(--color-accent),var(--color-accent))}.partner-switch input[type=checkbox]:checked+.partner-switch-slider:before{transform:translateX(24px)}.partner-switch:hover .partner-switch-slider{box-shadow:0 0 10px color-mix(in oklab,var(--color-accent) 30%,transparent)}@media (max-width:768px){.node-form-partner-toggle{margin-top:1rem;padding-top:1rem}.partner-switch{font-size:.9rem}.partner-switch-slider{width:44px;height:22px}.partner-switch-slider:before{height:16px;width:16px;left:3px;top:3px}.partner-switch input[type=checkbox]:checked+.partner-switch-slider:before{transform:translateX(22px)}}.children-selection-container{margin-top:1.5rem;padding:1.5rem;background:#f8f9fb;border:2px solid #e8ecf7;border-radius:12px;width:100%;box-sizing:border-box}.children-selection-header{margin-bottom:1rem;text-align:center}.children-selection-header h4{margin:0 0 .5rem;color:#333;font-size:1.1rem;font-weight:600}.children-selection-subtitle{color:#666;font-size:.9rem;font-style:italic;line-height:1.4}.children-selection-grid{display:grid;grid-template-columns:1fr;grid-gap:.75rem;gap:.75rem;margin-top:1rem}.child-selection-card{position:relative;background:#fff;border:2px solid #e0e6ed;border-radius:8px;transition:all .2s ease;overflow:hidden}.child-selection-card:hover{border-color:var(--color-accent);box-shadow:0 2px 8px color-mix(in oklab,var(--color-accent) 30%,transparent)}.child-checkbox-input{position:absolute;opacity:0;cursor:pointer}.child-checkbox-label{display:flex;align-items:center;justify-content:space-between;padding:1rem;cursor:pointer;margin:0;font-weight:500;transition:all .2s ease}.child-checkbox-label:hover{background:#f8f9fb}.child-name{color:#333;font-size:1rem;flex-grow:1}.checkbox-indicator{font-size:1.2rem;font-weight:700;min-width:24px;text-align:center;transition:all .2s ease}.child-checkbox-input:checked+.child-checkbox-label{background:var(--color-accent);color:#fff}.child-checkbox-input:checked+.child-checkbox-label .child-name{color:#fff}.child-checkbox-input:checked+.child-checkbox-label .checkbox-indicator{color:#90ee90}.no-children-message{text-align:center;padding:2rem 1rem;color:#666;font-style:italic;background:#fff;border:2px dashed #ddd;border-radius:8px}@media (max-width:480px){.children-selection-container{padding:1rem}.child-checkbox-label{padding:.75rem}.children-selection-header h4{font-size:1rem}.children-selection-subtitle{font-size:.85rem}}.landing{--landing-max-width:1180px;--landing-gutter:clamp(1rem,4vw,3rem);--landing-radius:1.25rem;min-height:100%;display:flex;flex-direction:column;grid-gap:0;gap:0;background:#f8fafc;background:var(--color-bg);color:#0f172a;color:var(--color-text)}.landing__hero{position:relative;padding:clamp(3rem,8vh,6rem) 0 4rem;background:linear-gradient(145deg,#fff,#f8fafc 70%);background:linear-gradient(145deg,var(--color-surface),var(--color-surface-alt) 70%);overflow:visible;isolation:isolate;z-index:1}.landing__hero-inner{max-width:var(--landing-max-width);margin:0 auto;padding:0 var(--landing-gutter);display:grid;align-items:center;grid-gap:clamp(2rem,4vw,4rem);gap:clamp(2rem,4vw,4rem);grid-template-columns:repeat(auto-fit,minmax(min(420px,100%),1fr))}.landing__hero-copy{max-width:640px;position:relative;z-index:2}.landing__title{margin:0 0 1.25rem;font-size:clamp(2.5rem,6vw,3.75rem);line-height:1.05;font-weight:700;letter-spacing:-.02em;color:#0f172a;color:var(--color-text)}.landing__tagline{font-size:clamp(1.05rem,1.4vw,1.25rem);line-height:1.4;color:#475569;color:var(--color-text-muted);margin:0 0 1rem;overflow-wrap:anywhere;word-break:normal}.landing__pitch{font-size:1rem;line-height:1.55;color:#64748b;color:var(--color-text-subtle);max-width:60ch;margin:0 0 1.75rem}.landing__actions{display:flex;flex-wrap:wrap;grid-gap:.85rem;gap:.85rem}.landing__cta-primary,.landing__primary-cta{font-weight:600;padding:.85rem 1.3rem;font-size:.95rem;line-height:1.1;transition:background .25s ease,box-shadow .25s ease,transform .25s ease}.landing__cta-primary,.landing__cta-secondary,.landing__primary-cta,.landing__secondary-cta{border-radius:.75rem;display:inline-flex;align-items:center;justify-content:center;text-align:center;grid-gap:.5rem;gap:.5rem}.landing__cta-secondary,.landing__secondary-cta{font-weight:500;padding:.85rem 1.2rem;font-size:.9rem}.landing__features{padding:clamp(3rem,8vh,5.5rem) 0 4.5rem;background:#f8fafc;background:var(--color-bg)}.landing__section-head{max-width:var(--landing-max-width);margin:0 auto 2.5rem;padding:0 var(--landing-gutter)}.landing__section-head h2{margin:0 0 .75rem;font-size:clamp(1.85rem,4.2vw,2.5rem);letter-spacing:-.015em}.landing__section-sub{margin:0;font-size:.95rem;color:#64748b;color:var(--color-text-subtle)}.landing__feature-grid{list-style:none;margin:0 auto;padding:0 var(--landing-gutter);display:grid;grid-gap:1.5rem;gap:1.5rem;max-width:var(--landing-max-width);grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr))}.landing__feature{background:#fff;background:var(--color-surface);border:1px solid #e2e8f0;border:1px solid var(--color-border);border-radius:var(--landing-radius);padding:1.25rem 1.15rem 1.4rem;position:relative;display:flex;flex-direction:column;grid-gap:.65rem;gap:.65rem;min-height:200px;transition:border-color .25s ease,box-shadow .25s ease,transform .25s ease}.landing__feature:hover{border-color:#cbd5e1;border-color:var(--color-border-strong);box-shadow:0 4px 18px rgba(15,23,42,.12);box-shadow:var(--color-shadow-lg);transform:translateY(-3px)}.landing__feature-icon-wrapper{width:42px;height:42px;display:flex;align-items:center;justify-content:center;background:rgba(15,23,42,.05);background:var(--color-accent-soft);border-radius:12px;color:#0f172a;color:var(--color-accent)}.landing__feature-icon-wrapper svg{width:26px;height:26px}.feature-glyph{font-size:1.25rem}.landing__feature-title{margin:0;font-size:1rem;font-weight:600;letter-spacing:-.01em}.landing__feature-desc{margin:0;font-size:.825rem;line-height:1.5;color:#64748b;color:var(--color-text-subtle)}.landing__narrative{background:#f8fafc;background:var(--color-surface-alt);border-top:1px solid #e2e8f0;border-top:1px solid var(--color-border);border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--color-border);padding:clamp(3rem,8vh,5.5rem) 0}.landing__narrative-inner{max-width:800px;margin:0 auto;padding:0 var(--landing-gutter);display:flex;flex-direction:column;grid-gap:1.1rem;gap:1.1rem}.landing__narrative-inner h2{margin:0 0 .25rem;font-size:clamp(1.75rem,4vw,2.15rem);letter-spacing:-.01em}.landing__narrative-inner p{margin:0;font-size:.95rem;line-height:1.6;color:#475569;color:var(--color-text-muted)}.landing__cta{padding:clamp(3.2rem,9vh,6rem) 0 5rem;background:linear-gradient(160deg,#0f172a,#1e293b 60%);background:linear-gradient(160deg,var(--color-accent),var(--slate-800) 60%);color:#fff;color:var(--color-accent-contrast);margin-top:auto}.landing__cta-inner{max-width:760px;margin:0 auto;padding:0 var(--landing-gutter);text-align:center;position:relative;z-index:1}.landing__cta-title{margin:0 0 .75rem;font-size:clamp(1.9rem,4.5vw,2.6rem);letter-spacing:-.02em}.landing__cta-sub{margin:0 0 2rem;font-size:1rem;color:rgba(248,250,252,.8);color:rgba(var(--slate-50-rgb),.8)}.landing__cta-actions{display:flex;flex-wrap:wrap;grid-gap:.9rem;gap:.9rem;justify-content:center}.landing__cta-primary,.landing__cta-secondary{min-width:180px;display:inline-flex;align-items:center;justify-content:center}.landing button:focus-visible{outline:2px solid rgba(15,23,42,.5);outline:2px solid var(--color-focus-outline);outline-offset:2px}.landing button:active{transform:translateY(1px)}@media (prefers-reduced-motion:reduce){.landing__visual-ring{animation:none!important;opacity:.25}.landing__cta button,.landing__feature,.landing__primary-cta{transition:none}}@media (max-width:680px){.landing__visual{min-height:300px}.landing__visual-ring--outer{width:400px;height:400px}.landing__visual-ring--mid{width:300px;height:300px}.landing__visual-ring--inner{width:180px;height:180px}.landing__actions{justify-content:center}.cluster-icon svg{width:32px;height:32px}.landing__feature-grid{grid-gap:1.1rem;gap:1.1rem}.landing__hero-inner{grid-template-columns:1fr}}@media (max-width:460px){.landing__title{font-size:2.25rem}.landing__tagline{font-size:.95rem}.landing__pitch{font-size:.9rem}.landing__feature-desc{font-size:.78rem}.landing__feature{padding:1.05rem 1rem 1.15rem}}.landing__visual{position:relative;min-height:380px;display:flex;align-items:center;justify-content:center;z-index:0;overflow:visible;max-width:560px;margin-inline:auto}.landing__visual:before{content:"";position:absolute;inset:10% 10% 10% 10%;border-radius:50%;background:radial-gradient(circle at 45% 55%,rgba(15,23,42,.08),rgba(15,23,42,0) 70%);background:radial-gradient(circle at 45% 55%,rgba(var(--slate-900-rgb),.08),rgba(var(--slate-900-rgb),0) 70%);filter:blur(20px);z-index:-1;pointer-events:none}.landing__visual-ring{position:absolute;border-radius:50%;pointer-events:none;--ring-accent-rgb:var(--slate-900-rgb);--ring-alpha-main:0.32;--ring-alpha-trail:0.16;--ring-thickness:18%;border:2px solid rgba(var(--ring-accent-rgb),.18);background:#00f;-webkit-mask:radial-gradient(circle,transparent calc(50% - var(--ring-thickness)),#000 calc(50% - var(--ring-thickness) + 1px));mask:radial-gradient(circle,transparent calc(50% - var(--ring-thickness)),#000 calc(50% - var(--ring-thickness) + 1px));z-index:0;will-change:transform,opacity;transform:translateZ(0);opacity:.9;box-shadow:0 0 26px -8px rgba(var(--ring-accent-rgb),.25)}.landing__visual-ring:after{content:"";position:absolute;inset:6%;border-radius:50%;pointer-events:none;background:radial-gradient(circle at 50% 50%,rgba(var(--ring-accent-rgb),.18),rgba(var(--ring-accent-rgb),0) 70%);-webkit-mask:radial-gradient(circle,#000 62%,transparent 63%);mask:radial-gradient(circle,#000 62%,transparent 63%);mix-blend-mode:multiply;opacity:.6}.landing__visual-ring--outer{width:520px;height:520px;animation:ring-breathe 18s ease-in-out infinite}.landing__visual-ring--mid{width:360px;height:360px;animation:ring-drift 28s ease-in-out infinite,ring-spin 56s linear infinite reverse}.landing__visual-ring--inner{width:220px;height:220px;animation:ring-spin 30s linear infinite,ring-breathe 20s ease-in-out infinite alternate;opacity:.72}@supports not (((-webkit-mask:radial-gradient(circle,black,transparent)) or (mask:radial-gradient(circle,black,transparent))) or (-webkit-mask:radial-gradient(circle,black,transparent))){.landing__visual-ring{-webkit-mask:none;mask:none;background:radial-gradient(circle,transparent 55%,rgba(var(--ring-accent-rgb),.2) 56%,rgba(var(--ring-accent-rgb),.2) 60%,transparent 61%),conic-gradient(from 0deg,rgba(var(--ring-accent-rgb),0) 0deg,rgba(var(--ring-accent-rgb),.35) 50deg,rgba(var(--ring-accent-rgb),0) 130deg,rgba(var(--ring-accent-rgb),.25) 210deg,rgba(var(--ring-accent-rgb),0) 300deg,rgba(var(--ring-accent-rgb),.35) 1turn);border:2px solid rgba(var(--ring-accent-rgb),.25);box-shadow:0 0 34px -6px rgba(var(--ring-accent-rgb),.3)}.landing__visual-ring:after{display:none}}.landing__visual--debug .landing__visual-ring{--ring-accent-rgb:255 99 0;--ring-alpha-main:0.85;--ring-alpha-trail:0.55;opacity:1;box-shadow:0 0 0 2px rgba(255,99,0,.6),0 0 18px 2px rgba(255,99,0,.6)}.landing__visual--debug:before{background:radial-gradient(circle,rgba(255,99,0,.15),rgba(255,99,0,0));filter:none}.landing__visual--nomask .landing__visual-ring{-webkit-mask:none;mask:none}@keyframes ring-breathe{0%{transform:scale(.88);opacity:.55}50%{transform:scale(1.08);opacity:.3}to{transform:scale(.88);opacity:.55}}@keyframes ring-drift{0%{transform:translate(0) scale(.95);opacity:.5}50%{transform:translate(10px,-8px) scale(1.05);opacity:.32}to{transform:translate(0) scale(.95);opacity:.5}}@keyframes ring-spin{0%{transform:rotate(0deg) scale(.92)}to{transform:rotate(1turn) scale(.92)}}.landing__visual-icon-cluster{position:relative;display:grid;place-items:center;width:160px;height:160px;background:#fff;background:var(--color-surface);border:1px solid #e2e8f0;border:1px solid var(--color-border);border-radius:32px;box-shadow:0 4px 18px rgba(15,23,42,.12);box-shadow:var(--color-shadow-lg);padding:1rem;grid-gap:.25rem;gap:.25rem;z-index:1}.cluster-icon{position:absolute;display:flex;align-items:center;justify-content:center}.cluster-icon svg{width:40px;height:40px}.cluster-icon--tree{top:18%;left:12%}.cluster-icon--saturn{bottom:16%;right:8%}.cluster-icon--star{top:8%;right:14%}.cluster-icon--compass{bottom:10%;left:20%}@keyframes cluster-tree-motion{0%{transform:translate(0) rotate(0deg) scale(1)}25%{transform:translate(-4px,-10px) rotate(-6deg) scale(1.04)}50%{transform:translate(2px,-2px) rotate(3deg) scale(.98)}75%{transform:translate(-6px,3px) rotate(-4deg) scale(1.03)}to{transform:translate(0) rotate(0deg) scale(1)}}@keyframes cluster-saturn-motion{0%{transform:translate(0) rotate(0deg) scale(1)}20%{transform:translate(6px,4px) rotate(8deg) scale(1.06)}45%{transform:translate(2px,-4px) rotate(3deg) scale(.97)}70%{transform:translate(-5px,6px) rotate(-5deg) scale(1.05)}to{transform:translate(0) rotate(0deg) scale(1)}}@keyframes cluster-star-motion{0%{transform:translate(0) rotate(0deg) scale(1)}30%{transform:translate(4px,-8px) rotate(18deg) scale(1.09)}55%{transform:translate(-3px,2px) rotate(-10deg) scale(.95)}80%{transform:translate(2px,-6px) rotate(12deg) scale(1.07)}to{transform:translate(0) rotate(0deg) scale(1)}}@keyframes cluster-compass-motion{0%{transform:translate(0) rotate(0deg) scale(1)}25%{transform:translate(-5px,5px) rotate(-10deg) scale(1.05)}50%{transform:translate(6px,2px) rotate(6deg) scale(.97)}75%{transform:translate(-3px,8px) rotate(-14deg) scale(1.06)}to{transform:translate(0) rotate(0deg) scale(1)}}.cluster-icon--tree{animation:cluster-tree-motion 10s ease-in-out infinite}.cluster-icon--saturn{animation:cluster-saturn-motion 13s ease-in-out infinite}.cluster-icon--star{animation:cluster-star-motion 11s ease-in-out infinite}.cluster-icon--compass{animation:cluster-compass-motion 9s ease-in-out infinite}.cluster-icon span,.cluster-icon svg{color:#0f172a;color:var(--color-accent)}[data-theme=dark] .landing__visual-ring{--ring-accent-rgb:var(--slate-50-rgb);--ring-alpha-main:0.28;--ring-alpha-trail:0.14;opacity:.75;box-shadow:0 0 32px -8px rgba(var(--ring-accent-rgb),.45)}[data-theme=dark] .landing__visual:before{background:radial-gradient(circle at 55% 48%,rgba(248,250,252,.05),rgba(248,250,252,0) 70%);background:radial-gradient(circle at 55% 48%,rgba(var(--slate-50-rgb),.05),rgba(var(--slate-50-rgb),0) 70%);filter:blur(26px)}@media (prefers-reduced-motion:reduce){.landing__visual-ring{animation:none!important;opacity:.25}.cluster-icon--compass,.cluster-icon--saturn,.cluster-icon--star,.cluster-icon--tree{animation:none!important;transform:none!important}}@media (max-width:680px){.landing__visual{min-height:300px}.landing__visual-ring--outer{width:400px;height:400px}.landing__visual-ring--mid{width:300px;height:300px}.landing__visual-ring--inner{width:180px;height:180px}.cluster-icon svg{width:32px;height:32px}}@media (max-width:460px){.landing__visual-icon-cluster{width:140px;height:140px}.cluster-icon svg{width:30px;height:30px}}.auth-container{min-height:100vh;display:flex;background:linear-gradient(140deg,#f8fafc,#fff 60%);background:linear-gradient(140deg,var(--color-surface-alt),var(--color-surface) 60%);color:#0f172a;color:var(--color-text)}.auth-left,.auth-right{flex:1 1;display:flex;align-items:center;justify-content:center;padding:clamp(1.5rem,4vw,3rem)}.auth-hero{max-width:520px;text-align:center;display:flex;flex-direction:column;grid-gap:1.25rem;gap:1.25rem}.auth-hero-title{margin:0;font-size:clamp(2rem,5vw,2.8rem);letter-spacing:-.02em;font-weight:700}.auth-hero-sub{margin:0;font-size:1rem;color:#475569;color:var(--color-text-muted);line-height:1.5}.auth-visual-cluster{position:relative;width:180px;height:180px;margin:0 auto .5rem;border-radius:40px;background:#fff;background:var(--color-surface);border:1px solid #e2e8f0;border:1px solid var(--color-border);box-shadow:0 4px 18px rgba(15,23,42,.12);box-shadow:var(--color-shadow-lg)}.auth-cluster-icon{position:absolute;display:flex;align-items:center;justify-content:center}.auth-cluster-icon svg{width:48px;height:48px;color:#0f172a;color:var(--color-accent)}.auth-cluster-icon--tree{top:20%;left:10%}.auth-cluster-icon--saturn{bottom:18%;right:10%}.auth-cluster-icon--star{top:10%;right:16%}.auth-cluster-icon--compass{bottom:12%;left:24%}@keyframes auth-tree{0%{transform:translate(0) rotate(0deg)}25%{transform:translate(-5px,-12px) rotate(-6deg)}50%{transform:translate(3px,-2px) rotate(4deg)}75%{transform:translate(-8px,4px) rotate(-4deg)}to{transform:translate(0) rotate(0deg)}}@keyframes auth-saturn{0%{transform:translate(0) rotate(0deg)}20%{transform:translate(6px,6px) rotate(10deg)}45%{transform:translate(2px,-6px) rotate(4deg)}70%{transform:translate(-6px,8px) rotate(-6deg)}to{transform:translate(0) rotate(0deg)}}@keyframes auth-star{0%{transform:translate(0) rotate(0deg)}30%{transform:translate(6px,-10px) rotate(18deg)}55%{transform:translate(-4px,4px) rotate(-12deg)}80%{transform:translate(2px,-8px) rotate(14deg)}to{transform:translate(0) rotate(0deg)}}@keyframes auth-compass{0%{transform:translate(0) rotate(0deg)}25%{transform:translate(-6px,6px) rotate(-12deg)}50%{transform:translate(8px,4px) rotate(8deg)}75%{transform:translate(-4px,10px) rotate(-16deg)}to{transform:translate(0) rotate(0deg)}}.auth-cluster-icon--tree{animation:auth-tree 10s ease-in-out infinite}.auth-cluster-icon--saturn{animation:auth-saturn 13s ease-in-out infinite}.auth-cluster-icon--star{animation:auth-star 11s ease-in-out infinite}.auth-cluster-icon--compass{animation:auth-compass 9s ease-in-out infinite}.auth-card{background:#fff;background:var(--color-surface);padding:clamp(2rem,4vw,4rem);border-radius:28px;width:100%;max-width:600px;box-shadow:0 4px 18px rgba(15,23,42,.12);box-shadow:var(--color-shadow-lg);border:1px solid #e2e8f0;border:1px solid var(--color-border);display:flex;flex-direction:column}.auth-header{text-align:center;margin-bottom:1.75rem}.auth-header h1{margin:0 0 .5rem;font-size:clamp(1.9rem,4vw,2.4rem);letter-spacing:-.015em}.auth-subtitle{margin:0;font-size:.95rem;color:#64748b;color:var(--color-text-subtle)}.auth-form{display:flex;flex-direction:column;grid-gap:1.25rem;gap:1.25rem;margin-bottom:2rem}.form-row{display:flex;grid-gap:1rem;gap:1rem;flex-wrap:wrap}.form-group{flex:1 1;min-width:200px;display:flex;flex-direction:column;grid-gap:.5rem;gap:.5rem}.form-group label{font-size:.85rem;font-weight:600;letter-spacing:.02em;color:#475569;color:var(--color-text-muted)}.form-input{padding:.85rem 1rem;border:1.5px solid #e2e8f0;border:1.5px solid var(--color-border);border-radius:12px;background:#f8fafc;background:var(--color-surface-alt);color:#0f172a;color:var(--color-text);font-size:clamp(16px,1rem,18px);line-height:1.3;transition:border-color .25s ease,background .25s ease,box-shadow .25s ease}.form-input:focus{outline:none;border-color:#0f172a;border-color:var(--color-accent);background:#fff;background:var(--color-surface);box-shadow:0 0 0 3px rgba(148,163,184,.25);box-shadow:0 0 0 3px rgba(var(--slate-400-rgb),.25)}.form-input[aria-invalid=true]{border-color:#e53e3e;box-shadow:0 0 0 2px rgba(229,62,62,.35)}.form-input::-moz-placeholder{color:#64748b;color:var(--color-text-subtle)}.form-input::placeholder{color:#64748b;color:var(--color-text-subtle)}.auth-submit-btn{width:100%;font-weight:600;padding:.95rem 1.2rem;border-radius:14px;font-size:1rem;letter-spacing:.5px}.auth-submit-btn:active{transform:translateY(1px)}.error-container{background:rgba(229,62,62,.08);border:1px solid rgba(229,62,62,.4);padding:.85rem 1rem;border-radius:12px;display:flex;flex-direction:column;grid-gap:.4rem;gap:.4rem}.error-message{color:#b42323;font-size:.75rem;font-weight:500}.auth-footer{text-align:center;padding-top:1.5rem;border-top:1px solid #e2e8f0;border-top:1px solid var(--color-border)}.auth-footer p{margin:0;font-size:.85rem;color:#64748b;color:var(--color-text-subtle)}.auth-link{color:#0f172a;color:var(--color-accent);font-weight:600;text-decoration:none}.auth-link:hover{text-decoration:underline;color:#0c1322;color:var(--color-accent-hover)}@media (prefers-reduced-motion:reduce){.auth-cluster-icon--compass,.auth-cluster-icon--saturn,.auth-cluster-icon--star,.auth-cluster-icon--tree{animation:none!important;transform:none!important}}@media (max-width:860px){.auth-container{flex-direction:column}.auth-left,.auth-right{padding:2rem 1.25rem}.auth-visual-cluster{width:160px;height:160px}.auth-cluster-icon svg{width:40px;height:40px}}@media (max-width:520px){.auth-card{padding:1.75rem 1.25rem;border-radius:22px}.auth-hero-title{font-size:2.1rem}.auth-visual-cluster{width:140px;height:140px}.auth-cluster-icon svg{width:34px;height:34px}.form-row{flex-direction:column}}.connection-form-panel{display:flex;flex-direction:column;align-items:flex-start;background:var(--color-surface);padding:2rem;border-radius:20px;box-shadow:0 10px 30px rgba(0,0,0,.1);margin:1rem 0;border:2px solid color-mix(in oklab,var(--color-text) 10%,transparent);font-family:Arial,Helvetica,sans-serif;transition:all .3s ease;overflow-y:auto}.connections-side-panel,.connections-side-panel-minimized{display:flex;flex-direction:column;align-items:center}.connection-form-panel:hover{box-shadow:0 15px 40px rgba(0,0,0,.15);border-color:var(--color-accent)}.connection-form h3{margin:0 0 1.5rem;color:var(--color-accent);font-size:1.3rem;font-weight:700;letter-spacing:.5px}.connection-form .form-row{width:100%;margin-bottom:1.2rem}.connection-sentence{display:flex;align-items:center;grid-gap:.65rem;gap:.65rem;flex-wrap:wrap;background:color-mix(in oklab,var(--color-surface) 94%,var(--color-bg))}.connection-text{font-weight:700;color:var(--color-text);white-space:nowrap}.connection-pill{flex:1 1 180px;min-width:140px}.connection-type-pill{flex:1 1 140px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.character-detail-header .form-row{display:grid;grid-template-columns:1fr;grid-gap:.5rem;gap:.5rem;margin:0;width:100%}.file-input-stack{display:flex;flex-direction:column;grid-gap:.35rem;gap:.35rem;min-width:0;max-width:100%}.file-input-stack .file-input-label{font-weight:600;font-size:.95rem}.file-input-stack input[type=file]{max-width:100%;width:100%;box-sizing:border-box}.connection-form label{font-size:1rem;font-weight:600;color:var(--color-text);margin-bottom:.5rem;display:block;width:100%;line-height:1.5}.connection-form input[type=text],.connection-form select,.connection-form textarea{width:100%;padding:.8rem 1rem;border:2px solid color-mix(in oklab,var(--color-text) 15%,transparent);border-radius:10px;font-size:clamp(16px,1rem,18px);background:color-mix(in oklab,var(--color-surface) 92%,var(--color-bg));transition:all .3s ease;margin-top:.5rem;box-sizing:border-box;resize:vertical}.connection-form input[type=text]:focus,.connection-form select:focus,.connection-form textarea:focus{outline:none;border-color:var(--color-accent);background:var(--color-surface);box-shadow:0 0 0 3px color-mix(in oklab,var(--color-accent) 20%,transparent)}.connection-form textarea{min-height:60px;max-height:200px}.connection-form .reciprocal-opt .help-text{margin:.35rem 0 0;color:#6b7280;color:var(--color-text-subtle,#6b7280);font-size:.9rem}.connection-form select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3E%3Cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3E%3C/svg%3E");background-position:right .5rem center;background-repeat:no-repeat;background-size:1.5rem 1.5rem;padding-right:2.5rem;cursor:pointer}.connection-form button[type=submit]{width:100%;padding:1rem 2rem;background:linear-gradient(45deg,var(--color-accent),var(--color-accent));color:#fff;border:none;border-radius:12px;font-size:1.1rem;font-weight:600;cursor:pointer;transition:all .3s ease;text-transform:uppercase;letter-spacing:.5px;box-shadow:0 4px 15px color-mix(in oklab,var(--color-accent) 30%,transparent);margin-top:1.5rem}.connection-form button[type=submit]:hover{background:linear-gradient(45deg,color-mix(in oklab,var(--color-accent) 85%,#fff),var(--color-accent));transform:translateY(-2px);box-shadow:0 6px 20px color-mix(in oklab,var(--color-accent) 40%,transparent)}.connection-form button[type=submit]:active{transform:translateY(0)}.connection-form button[type=submit]:focus{outline:3px solid rgba(102,126,234,.5);outline-offset:2px}.add-type-button{margin-top:.75rem;padding:.6rem 1.2rem;background:linear-gradient(45deg,#6c757d,#5a6268);color:#fff;border:none;border-radius:8px;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s ease;text-transform:uppercase;letter-spacing:.3px}.add-type-button:hover{background:linear-gradient(45deg,#5a6268,#495057);transform:translateY(-1px)}.add-type-form{display:grid;grid-template-columns:1fr;grid-gap:.7rem;gap:.7rem;margin-top:1rem;margin-bottom:1rem;padding:1rem;background:#f8f9fb;border:2px solid #e0e6ed;border-radius:10px;width:100%;max-width:100%;box-sizing:border-box;align-items:start}.add-type-form input[type=text]{border:2px solid #e0e6ed;border-radius:8px;font-size:1rem;background:#fff;transition:all .2s ease;margin-top:0}.add-type-form input[type=text]:focus{border-color:var(--color-accent);outline:none}.add-type-form button{padding:.7rem 1.5rem;background:linear-gradient(45deg,var(--color-accent),var(--color-accent));color:#fff;border:none;border-radius:8px;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s ease;text-transform:uppercase}.add-type-form button:hover:not(:disabled){background:linear-gradient(45deg,color-mix(in oklab,var(--color-accent) 85%,#fff),var(--color-accent));transform:translateY(-1px)}.add-type-form button:disabled{opacity:.5;cursor:not-allowed}.connection-form .error{color:#e74c3c;background:#fff0f0;border-radius:8px;padding:.5rem 1rem;margin-top:.5rem;font-size:.98rem;font-weight:500}.existing-connections{width:100%;margin-top:2rem;background:#f8f9fb;border:2px solid #e8ecf7;border-radius:12px;padding:1.5rem;box-sizing:border-box}.existing-connections h3{margin:0 0 1rem;color:var(--color-accent);font-size:1.1rem;font-weight:600}.existing-connections input[type=text]{width:100%;border:2px solid #e0e6ed;border-radius:8px;font-size:1rem;margin-bottom:1rem;background:#fff;transition:all .2s ease}.existing-connections input[type=text]:focus{border-color:var(--color-accent);outline:none}.existing-connections ul{list-style:none;padding:0;margin:0}.existing-connections li{display:flex;align-items:center;justify-content:space-between;background:#fff;border:2px solid #e0e6ed;border-radius:8px;padding:.8rem 1rem;margin-bottom:.7rem;font-size:1rem;font-weight:500;transition:all .2s ease}.existing-connections li:hover{border-color:var(--color-accent);box-shadow:0 2px 8px color-mix(in oklab,var(--color-accent) 30%,transparent)}.existing-list-item{display:flex;flex-direction:column;grid-gap:.15rem;gap:.15rem}.existing-item-name{font-weight:600}.existing-item-description{color:#6b7280;font-size:.95rem;line-height:1.35}.existing-list-row{display:flex;align-items:center;justify-content:flex-start;grid-gap:1rem;gap:1rem;width:100%}.existing-item-avatar{width:48px;height:48px;border-radius:12px;overflow:hidden;background:#eef0f6;display:flex;align-items:center;justify-content:center;border:1px solid #e3e7f0;flex-shrink:0}.existing-item-avatar img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;display:block}.avatar-fallback{width:100%;height:100%;font-weight:700;color:#4b5563;background:linear-gradient(135deg,#f8fafc,#e5e7eb)}.avatar-fallback,.character-avatar{display:flex;align-items:center;justify-content:center}.character-avatar{width:64px;height:64px;border-radius:50%;overflow:hidden;background:#eef0f6;border:2px solid #dfe3ec;flex-shrink:0}.character-avatar img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;display:block}.help-text{font-size:.85rem;color:#6b7280;margin-top:.35rem}.character-connections-wrapper{display:flex;flex-direction:column;grid-gap:1rem;gap:1rem}.character-detail-header{display:grid;grid-template-columns:auto auto auto;align-items:center;grid-gap:1rem;gap:1rem;padding:1rem;background:#f8f9fb;border:2px solid #e8ecf7;border-radius:12px}.character-detail-meta{flex:1 1;min-width:0}.character-detail-meta h3{margin:0;line-height:1.2}.character-detail-actions{display:flex;grid-gap:.5rem;gap:.5rem;align-items:center;flex-wrap:wrap;justify-content:flex-end}.character-detail-actions .primary,.character-detail-actions .secondary{border-radius:10px;padding:.6rem 1rem;font-weight:700;text-transform:uppercase}.character-detail-actions .primary{background:linear-gradient(45deg,var(--color-accent),color-mix(in oklab,var(--color-accent) 70%,#fff));border:none;color:#fff}.character-detail-actions .primary:hover{filter:brightness(1.05)}.selected-row{border-color:var(--color-accent);box-shadow:0 2px 10px color-mix(in oklab,var(--color-accent) 30%,transparent)}.connection-detail-card{width:100%;background:#fff;border:2px solid #e0e6ed;border-radius:12px;padding:1rem 1.25rem;box-sizing:border-box;box-shadow:0 4px 14px rgba(0,0,0,.05)}.connection-detail-header{display:flex;align-items:baseline;justify-content:space-between;grid-gap:1rem;gap:1rem}.connection-notes-block{margin-top:.75rem;padding:.75rem;background:#f8f9fb;border:2px solid #e8ecf7;border-radius:10px}.connection-notes-display{margin-top:.35rem;padding:.75rem;background:#fff;border:1px solid #e0e6ed;border-radius:8px;color:#374151;line-height:1.5}.connection-notes-input{width:100%;margin-top:.5rem;padding:.8rem 1rem;border:2px solid #d7dce6;border-radius:10px;font-size:1rem;background:#fff;box-sizing:border-box;transition:all .2s ease;resize:vertical;min-height:120px}.connection-notes-input:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px color-mix(in oklab,var(--color-accent) 20%,transparent)}.characters-modal-toolbar{display:flex;flex-wrap:wrap;grid-gap:.5rem;gap:.5rem;margin-bottom:1rem}.characters-modal-toolbar .ushow-action-button.active{background:transparent;border:2px solid color-mix(in oklab,var(--color-accent) 80%,transparent);box-shadow:0 0 0 3px color-mix(in oklab,var(--color-accent) 15%,transparent);color:var(--color-text)}.manage-types-header{display:flex;align-items:center;justify-content:space-between;grid-gap:.75rem;gap:.75rem}.character-description-edit{margin-bottom:1rem}.edit-description-btn{background:transparent;border:2px dashed color-mix(in oklab,var(--color-accent) 60%,transparent);color:var(--color-text);padding:.65rem 1rem;border-radius:10px;cursor:pointer;transition:all .2s ease}.edit-description-btn:hover{border-color:var(--color-accent);background:#f8f9fb}.description-edit-form textarea{width:100%;padding:.8rem 1rem;border:2px solid #d7dce6;border-radius:10px;font-size:1rem;background:#fff;box-sizing:border-box;transition:all .2s ease;resize:vertical}.description-edit-form textarea:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px color-mix(in oklab,var(--color-accent) 20%,transparent)}.delete-character-btn{margin-top:.5rem;background:linear-gradient(45deg,#ef4444,#dc2626);color:#fff;border:none;border-radius:10px;padding:.65rem 1rem;font-weight:700;cursor:pointer;transition:all .2s ease}.delete-character-btn:hover{background:linear-gradient(45deg,#f87171,#ef4444);transform:translateY(-1px)}.character-detail-header button.secondary{background:linear-gradient(45deg,#6b7280,#4b5563);color:#fff;border:none;border-radius:10px;padding:.6rem 1rem;font-size:.95rem;font-weight:700;cursor:pointer;transition:all .2s ease;text-transform:uppercase}.character-detail-header button.secondary:hover{background:linear-gradient(45deg,#4b5563,#374151);transform:translateY(-1px)}.connection-actions{display:flex;align-items:center;grid-gap:.75rem;gap:.75rem}.connection-type-dropdown{padding:.5rem 2rem .5rem .8rem;border:2px solid #e0e6ed;border-radius:6px;font-size:.95rem;background:#fff;cursor:pointer;transition:all .2s ease;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3E%3Cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3E%3C/svg%3E");background-position:right .5rem center;background-repeat:no-repeat;background-size:1.2rem 1.2rem;min-width:120px}.connection-type-dropdown:focus,.connection-type-dropdown:hover{border-color:var(--color-accent)}.connection-type-dropdown:focus{outline:none;box-shadow:0 0 0 3px color-mix(in oklab,var(--color-accent) 20%,transparent)}.existing-connections button[type=button]{background:linear-gradient(45deg,var(--color-accent),var(--color-accent));color:#fff;border:none;border-radius:8px;padding:.5rem 1.2rem;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s ease}.existing-connections .row-actions{display:inline-flex;align-items:center;grid-gap:.5rem;gap:.5rem}.character-edit-actions{margin-top:.75rem;display:flex;grid-gap:.5rem;gap:.5rem;justify-content:flex-start}.character-edit-actions button{padding:.6rem 1rem;border:none;border-radius:10px;font-size:.95rem;font-weight:700;cursor:pointer;transition:all .2s ease;text-transform:uppercase}.character-edit-actions button.primary{background:linear-gradient(45deg,#5b6def,#5b6def);background:linear-gradient(45deg,var(--color-accent,#5b6def),var(--color-accent,#5b6def));color:#fff}.character-edit-actions button.primary:hover:not(:disabled){background:linear-gradient(45deg,color-mix(in oklab,#5b6def 85%,#fff),#5b6def);background:linear-gradient(45deg,color-mix(in oklab,var(--color-accent,#5b6def) 85%,#fff),var(--color-accent,#5b6def));transform:translateY(-1px)}.character-edit-actions button.secondary{background:linear-gradient(45deg,#6b7280,#4b5563);color:#fff}.character-edit-actions button.secondary:hover{background:linear-gradient(45deg,#4b5563,#374151);transform:translateY(-1px)}.character-edit-actions button:disabled{opacity:.5;cursor:not-allowed}.existing-connections button[type=button]:hover{background:linear-gradient(45deg,color-mix(in oklab,var(--color-accent) 85%,#fff),var(--color-accent))}.manage-connection-types{width:100%;margin-top:2rem;background:#f8f9fb;border:2px solid #e8ecf7;border-radius:12px;padding:1.5rem;box-sizing:border-box}.manage-connection-types h3{margin:0 0 1rem;color:var(--color-accent);font-size:1.1rem;font-weight:600}.manage-connection-types ul{list-style:none;padding:0;margin:0}.manage-connection-types li{list-style:none}.type-card{display:block;background:#fff;border:2px solid #e0e6ed;border-radius:12px;padding:.9rem 1rem;margin-bottom:.9rem;font-size:1rem;font-weight:500;transition:all .2s ease}.type-card:hover{border-color:var(--color-accent);box-shadow:0 2px 10px color-mix(in oklab,var(--color-accent) 28%,transparent)}.type-card-grid{display:grid;grid-template-columns:1fr;grid-gap:.75rem;gap:.75rem}.type-card-main{display:grid;grid-gap:.5rem;gap:.5rem}.type-title-row{justify-content:space-between;grid-gap:.75rem;gap:.75rem}.type-name,.type-title-row{display:flex;align-items:center;flex-wrap:wrap}.type-name{grid-gap:.5rem;gap:.5rem}.type-name-text{font-weight:700;color:#1f2937}.type-usage-count{font-size:.85rem;color:#6b7280;font-weight:400;white-space:nowrap}.type-pill{padding:.25rem .55rem;border-radius:999px;font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.4px}.pill-symmetric{background:color-mix(in oklab,var(--color-accent) 16%,#fff);color:var(--color-accent)}.pill-directional{background:#fef3c7;color:#b45309}.type-meta-row{justify-content:space-between;grid-gap:1rem;gap:1rem;flex-wrap:wrap}.type-meta-row,.type-toggle{display:flex;align-items:center}.type-toggle{grid-gap:.4rem;gap:.4rem}.type-fixed-note{font-size:.85rem;color:#6b7280}.type-actions-row{display:flex;align-items:center;grid-gap:.6rem;gap:.6rem;flex-wrap:wrap;justify-content:flex-start}.type-actions{width:100%}.manage-connection-types button{background:linear-gradient(45deg,var(--color-accent),var(--color-accent));color:#fff;border:none;border-radius:6px;padding:.5rem 1rem;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s ease}.manage-connection-types button:hover{background:linear-gradient(45deg,color-mix(in oklab,var(--color-accent) 85%,#fff),var(--color-accent));transform:translateY(-1px)}.manage-connection-types .replace-button{background:linear-gradient(45deg,#f59e0b,#d97706)}.manage-connection-types .replace-button:hover{background:linear-gradient(45deg,#fbbf24,#f59e0b)}.manage-connection-types .delete-type-button{background:linear-gradient(45deg,#ef4444,#dc2626)}.manage-connection-types .delete-type-button:hover{background:linear-gradient(45deg,#f87171,#ef4444)}.type-edit-form,.type-replace-form{display:flex;align-items:center;grid-gap:.7rem;gap:.7rem;width:100%}.type-edit-form input[type=text]{flex:1 1;padding:.6rem .9rem;border:2px solid #e0e6ed;border-radius:6px;font-size:1rem;background:#fff;transition:all .2s ease}.type-edit-form input[type=text]:focus{border-color:var(--color-accent);outline:none}.type-replace-form{flex-wrap:wrap}.type-name-label{font-weight:600;color:#374151;white-space:nowrap}.type-replace-form select{flex:1 1;min-width:150px;padding:.6rem 2rem .6rem .9rem;border:2px solid #e0e6ed;border-radius:6px;font-size:.95rem;background:#fff;cursor:pointer;transition:all .2s ease;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3E%3Cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3E%3C/svg%3E");background-position:right .5rem center;background-repeat:no-repeat;background-size:1.2rem 1.2rem}.type-replace-form select:focus,.type-replace-form select:hover{border-color:var(--color-accent)}.type-replace-form select:focus{outline:none;box-shadow:0 0 0 3px color-mix(in oklab,var(--color-accent) 20%,transparent)}.connection-form{width:100%}@media (max-width:768px){.connection-form-panel{padding:1.5rem;max-width:100%}.existing-connections{padding:1rem}.connection-form button[type=submit]{padding:.9rem 1.5rem;font-size:1rem}.character-detail-header{grid-template-columns:1fr;align-items:flex-start}.character-detail-actions{grid-column:span 1;justify-content:flex-start}}.type-info{justify-content:space-between;width:100%;grid-gap:1rem;gap:1rem;padding-right:1rem}.type-color-picker,.type-info{display:flex;align-items:center}.type-color-picker{grid-gap:.5rem;gap:.5rem}.color-preview{width:32px;height:32px;border-radius:6px;border:2px solid #e0e6ed;cursor:pointer;transition:all .2s ease}.color-preview:hover{border-color:var(--color-accent);transform:scale(1.05)}.edit-color-button{background:linear-gradient(45deg,#6b7280,#4b5563)!important;font-size:.85rem!important;padding:.4rem .8rem!important}.edit-color-button:hover{background:linear-gradient(45deg,#4b5563,#374151)!important}.type-color-picker input[type=color]{width:50px;height:40px;border:2px solid #e0e6ed;border-radius:6px;cursor:pointer;padding:2px}.type-color-picker input[type=color]:focus{outline:none;border-color:var(--color-accent)}.color-edit-buttons{display:grid;align-items:center;grid-template-columns:1fr 1fr;grid-gap:1rem}@media (max-width:480px){.connection-form-panel{padding:1rem;margin:.5rem 0}.connection-form label{font-size:.9rem}.connection-form select,.connection-form textarea{padding:.7rem;font-size:.9rem}.existing-connections li{padding:.6rem .7rem;font-size:.95rem}.connection-actions,.type-actions{flex-direction:column;align-items:stretch;grid-gap:.5rem;gap:.5rem}.type-info{flex-direction:column;align-items:flex-start}.color-edit-buttons{display:grid;align-items:stretch;grid-gap:.5rem}}.connections-side-panel{margin-top:auto}.connections-container{display:flex;flex-direction:column;min-height:0;position:relative;height:100%}.editor-component-selector{display:flex;align-items:center;justify-content:center;margin-left:1rem}.editor-component-selector label{font-size:1rem;font-weight:600;color:var(--color-text);display:flex;align-items:center;grid-gap:.7rem;gap:.7rem}.editor-component-selector select{border:2px solid color-mix(in oklab,var(--color-text) 15%,transparent);border-radius:10px;font-size:1rem;background:color-mix(in oklab,var(--color-surface) 92%,var(--color-bg));transition:all .3s ease;margin-left:.5rem;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3E%3Cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3E%3C/svg%3E");background-position:right .5rem center;background-repeat:no-repeat;background-size:1.5rem 1.5rem;padding:.7rem 2.5rem .7rem 1.2rem}.editor-component-selector select:focus{outline:none;border-color:var(--color-accent);background:var(--color-surface);box-shadow:0 0 0 3px color-mix(in oklab,var(--color-accent) 20%,transparent)}.rvp-container{position:relative;width:100%;min-height:80px;background:var(--color-surface);border-radius:16px;border:2px solid color-mix(in oklab,var(--color-text) 10%,transparent);box-shadow:0 10px 30px rgba(0,0,0,.08);overflow:hidden}.rvp-content{width:100%;height:100%;overflow:auto}.rvp-collapsed{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:color-mix(in oklab,var(--color-surface) 90%,var(--color-bg))}.rvp-expand-btn{padding:.7rem 1.2rem;background:linear-gradient(45deg,var(--color-accent),var(--color-accent));color:#fff;border:none;border-radius:10px;font-size:.95rem;font-weight:700;cursor:pointer;transition:all .2s ease;text-transform:uppercase}.rvp-expand-btn:hover{background:linear-gradient(45deg,color-mix(in oklab,var(--color-accent) 85%,#fff),var(--color-accent));transform:translateY(-1px)}.rvp-handle{position:absolute;left:0;right:0;height:28px;display:flex;align-items:center;justify-content:center;cursor:ns-resize;z-index:5;-webkit-user-select:none;-moz-user-select:none;user-select:none;touch-action:none}.rvp-handle-top{top:0}.rvp-handle-bottom{bottom:0}.rvp-grip{width:80px;height:6px;border-radius:6px;background:color-mix(in oklab,var(--color-text) 35%,transparent);box-shadow:0 1px 0 rgba(0,0,0,.06)}.rvp-handle:hover .rvp-grip{background:color-mix(in oklab,var(--color-text) 50%,transparent)}body.rvp-dragging{cursor:ns-resize;-webkit-user-select:none;-moz-user-select:none;user-select:none}.modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.45);display:flex;align-items:center;justify-content:center;z-index:1000}.modal-sheet{max-width:720px;width:calc(100% - 32px);max-height:80vh;overflow:auto;background:#fff;color:#212529;border-radius:10px;box-shadow:0 10px 30px rgba(0,0,0,.25);padding:16px 16px 12px}.modal-title{margin:0;font-size:1.1rem}.modal-title-row{display:flex;align-items:center;justify-content:space-between;grid-gap:.5rem;gap:.5rem;width:100%;margin-bottom:8px}.modal-close{background:transparent;border:none;color:#111827;font-size:1.5rem;line-height:1;cursor:pointer;padding:.25rem .4rem;border-radius:8px;transition:background .2s ease,transform .1s ease}.modal-close:hover{background:#f3f4f6;transform:scale(1.05)}.modal-body{white-space:pre-wrap;line-height:1.45}.modal-actions{margin-top:12px;display:flex;justify-content:flex-end}.modal-actions .btn{padding:8px 12px;border-radius:8px;border:1px solid #ced4da;background:#f1f3f5;cursor:pointer}.modal-actions .btn:hover{background:#e9ecef}.modal-action-button{flex:1 1;padding:.85rem 1.5rem;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease}.event-details{color:#212529;background:#fff;background:var(--color-surface,#fff);padding:1rem 1.25rem;border-radius:12px;border:2px solid color-mix(in oklab,#111 10%,transparent);border:2px solid color-mix(in oklab,var(--color-text,#111) 10%,transparent);box-shadow:0 10px 30px rgba(0,0,0,.08)}.event-details .muted{color:#868e96}.event-details-section{margin-bottom:1rem}.event-details-heading{font-weight:700;color:#5b6def;color:var(--color-accent,#5b6def);margin-bottom:.5rem;letter-spacing:.3px}.event-details-content p{margin:0;white-space:pre-wrap;line-height:1.5}.event-details-meta{display:grid;grid-template-columns:max-content 1fr;grid-gap:8px 14px;gap:8px 14px;align-items:center}.event-details-meta .k{color:#495057;font-weight:700}.event-details-meta .v{color:#212529;width:100%}.event-details input[type=text],.event-details textarea{width:100%;border:2px solid #e0e6ed;border-radius:10px;font-size:1rem;background:#fff;transition:all .2s ease}.event-details input[type=text]:focus,.event-details textarea:focus{border-color:#5b6def;border-color:var(--color-accent,#5b6def);outline:none;box-shadow:0 0 0 3px color-mix(in oklab,#5b6def 20%,transparent);box-shadow:0 0 0 3px color-mix(in oklab,var(--color-accent,#5b6def) 20%,transparent)}.event-details .event-details-content textarea{min-height:220px;line-height:1.5;resize:vertical}.event-details-actions{margin-top:.75rem;display:flex;grid-gap:.5rem;gap:.5rem;justify-content:flex-end}.event-details-actions__primary{display:flex;grid-gap:.5rem;gap:.5rem;align-items:center}.event-details-actions button{padding:.6rem 1rem;border:none;border-radius:10px;font-size:.95rem;font-weight:700;cursor:pointer;transition:all .2s ease;text-transform:uppercase}.event-details-actions button.primary{background:linear-gradient(45deg,#5b6def,#5b6def);background:linear-gradient(45deg,var(--color-accent,#5b6def),var(--color-accent,#5b6def));color:#fff}.event-details-actions button.primary:hover:not(:disabled){background:linear-gradient(45deg,color-mix(in oklab,#5b6def 85%,#fff),#5b6def);background:linear-gradient(45deg,color-mix(in oklab,var(--color-accent,#5b6def) 85%,#fff),var(--color-accent,#5b6def));transform:translateY(-1px)}.event-details-actions button.danger{background:linear-gradient(45deg,#c92a2a,#a61e1e);color:#fff}.event-details-actions button.danger:hover:not(:disabled){background:linear-gradient(45deg,#e03131,#c92a2a);transform:translateY(-1px)}.event-details-actions button.secondary{background:linear-gradient(45deg,#6b7280,#4b5563);color:#fff}.event-details-actions button.secondary:hover{background:linear-gradient(45deg,#4b5563,#374151);transform:translateY(-1px)}.event-details-actions button:disabled{opacity:.5;cursor:not-allowed}.timeline-options-buttons{margin-bottom:13px}.connection-filter-box{display:flex;flex-direction:column;grid-gap:8px;gap:8px;margin-top:8px;padding:10px;border:1px solid color-mix(in oklab,var(--color-text) 15%,transparent);border-radius:10px;background:color-mix(in oklab,var(--color-surface) 95%,var(--color-bg));min-width:0;width:100%}.connection-filter-header-row{display:flex;align-items:center;justify-content:space-between;grid-gap:8px;gap:8px}.connection-filter-title{font-weight:700;color:var(--color-text)}.connection-filter-header-actions{display:flex;grid-gap:6px;gap:6px}.connection-filter-chips{background:hsla(0,0%,100%,.1);border-radius:25px;padding:4px;display:flex;grid-gap:8px;gap:8px;backdrop-filter:blur(8px);border:1px solid hsla(0,0%,100%,.2);width:100%;max-width:100%;min-width:0;white-space:nowrap;overflow-x:auto;scrollbar-width:none;overflow-y:hidden;-webkit-overflow-scrolling:touch}.connection-filter-chips::-webkit-scrollbar{display:none}.connection-filter-chip{background:color-mix(in oklab,var(--color-surface) 90%,var(--color-text) 8%);border-radius:999px;padding:4px 10px;display:inline-flex;align-items:center;grid-gap:6px;gap:6px;font-size:.9rem}.connection-filter-chip button{border:none;background:transparent;cursor:pointer;font-weight:700;color:var(--color-text);padding:0;line-height:1}.connection-filter-label{font-weight:600;color:var(--color-text);display:flex;flex-direction:column;grid-gap:6px;gap:6px}.connection-filter-input{padding:.5rem .75rem;border-radius:8px;border:1px solid color-mix(in oklab,var(--color-text) 15%,transparent)}.connection-filter-actions{display:flex;grid-gap:8px;gap:8px;flex-wrap:wrap}.add-event-form-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.6);display:flex;align-items:center;justify-content:center;z-index:2000;animation:fadeIn .2s ease-in-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.add-event-form-modal{background:#fff;background:var(--color-surface,#fff);border-radius:16px;padding:2rem;max-width:500px;width:90%;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px rgba(0,0,0,.3);animation:slideUp .3s ease-out}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.add-event-form-modal h3{margin:0 0 1.5rem;color:#667eea;color:var(--color-accent,#667eea);font-size:1.5rem;font-weight:700}.add-event-form-modal form{display:flex;flex-direction:column;grid-gap:1.2rem;gap:1.2rem}.form-field{display:flex;flex-direction:column;grid-gap:.5rem;gap:.5rem}.form-field label{font-size:.95rem;font-weight:600;color:#374151}.form-field input[type=number],.form-field input[type=text],.form-field textarea{padding:.75rem 1rem;border:2px solid #e0e6ed;border-radius:8px;font-size:1rem;font-family:inherit;background:#fff;transition:all .2s ease}.form-field input[type=number]:focus,.form-field input[type=text]:focus,.form-field textarea:focus{outline:none;border-color:#667eea;border-color:var(--color-accent,#667eea);box-shadow:0 0 0 3px rgba(102,126,234,.1)}.form-field textarea{resize:vertical;min-height:80px}.form-actions{display:flex;grid-gap:.75rem;gap:.75rem;margin-top:.5rem}.form-actions button{flex:1 1;padding:.85rem 1.5rem;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease}.submit-button{background:linear-gradient(45deg,#667eea,#667eea);background:linear-gradient(45deg,var(--color-accent,#667eea),var(--color-accent,#667eea));color:#fff}.submit-button:hover:not(:disabled){background:linear-gradient(45deg,#5568d3,#667eea);transform:translateY(-1px);box-shadow:0 4px 12px rgba(102,126,234,.3)}.submit-button:disabled{opacity:.6;cursor:not-allowed}.cancel-button{background:#e5e7eb;color:#374151}.cancel-button:hover:not(:disabled){background:#d1d5db}.cancel-button:disabled{opacity:.6;cursor:not-allowed}@media (max-width:768px){.add-event-form-modal{padding:1.5rem;width:95%}.form-actions{flex-direction:column}}.manage-timelines-panel{display:flex;flex-direction:column;align-items:flex-start;background:var(--color-surface);padding:2rem;border-radius:20px;box-shadow:0 10px 30px rgba(0,0,0,.1);margin:1rem 0;border:2px solid color-mix(in oklab,var(--color-text) 10%,transparent);font-family:Arial,Helvetica,sans-serif;transition:all .3s ease;overflow-y:auto}.manage-timelines-panel:hover{box-shadow:0 15px 40px rgba(0,0,0,.15);border-color:var(--color-accent)}.manage-timelines-form{width:100%}.manage-timelines-form h3{margin:0 0 1.5rem;color:var(--color-accent);font-size:1.3rem;font-weight:700;letter-spacing:.5px}.create-timeline-controls{width:100%;margin-bottom:1rem}.create-timeline-button{padding:.7rem 1.2rem;background:linear-gradient(45deg,var(--color-accent),var(--color-accent));color:#fff;border:none;border-radius:10px;font-size:.98rem;font-weight:700;cursor:pointer;transition:all .2s ease;text-transform:uppercase;letter-spacing:.3px}.create-timeline-button:hover{background:linear-gradient(45deg,color-mix(in oklab,var(--color-accent) 85%,#fff),var(--color-accent));transform:translateY(-1px)}.create-timeline-form{display:flex;flex-direction:column;grid-gap:.7rem;gap:.7rem;margin-top:.75rem;padding:1rem;background:#f8f9fb;border:2px solid #e0e6ed;border-radius:12px}.create-timeline-form input[type=text]{width:100%;border:2px solid #e0e6ed;border-radius:10px;font-size:1.5rem;background:#fff;transition:all .2s ease}.create-timeline-form input[type=text]:focus{border-color:var(--color-accent);outline:none;box-shadow:0 0 0 3px color-mix(in oklab,var(--color-accent) 20%,transparent)}.create-timeline-form button{padding:.7rem 1.2rem;background:linear-gradient(45deg,var(--color-accent),var(--color-accent));color:#fff;border:none;border-radius:10px;font-size:.95rem;font-weight:700;cursor:pointer;transition:all .2s ease;text-transform:uppercase}.create-timeline-form button:hover:not(:disabled){background:linear-gradient(45deg,color-mix(in oklab,var(--color-accent) 85%,#fff),var(--color-accent));transform:translateY(-1px)}.create-timeline-form button:disabled{opacity:.5;cursor:not-allowed}.timelines-list{width:100%}.timelines-list ul{list-style:none;padding:0;margin:0}.timelines-list li{background:#fff;border:2px solid #e0e6ed;border-radius:8px;padding:1rem;margin-bottom:.7rem;transition:all .2s ease}.timelines-list li:hover{border-color:var(--color-accent);box-shadow:0 2px 8px color-mix(in oklab,var(--color-accent) 30%,transparent)}.timelines-list li.selected{border-color:var(--color-accent);background:color-mix(in oklab,var(--color-accent) 5%,#fff)}.timeline-item-header{flex-direction:column}.timeline-info,.timeline-item-header{display:flex;grid-gap:.7rem;gap:.7rem}.timeline-info{align-items:center;flex:1 1}.timeline-name{font-size:1.1rem;font-weight:600;color:#374151;cursor:pointer;transition:color .2s}.timeline-name:hover{color:var(--color-accent)}.timeline-event-count{font-size:.9rem;color:#6b7280;font-weight:400}.timeline-actions{display:flex;align-items:center;grid-gap:.5rem;gap:.5rem;flex-wrap:wrap}.timeline-actions button{padding:.5rem 1rem;border:none;border-radius:8px;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s ease}.rename-button{background:linear-gradient(45deg,var(--color-accent),var(--color-accent));color:#fff}.rename-button:hover{background:linear-gradient(45deg,color-mix(in oklab,var(--color-accent) 85%,#fff),var(--color-accent));transform:translateY(-1px)}.expand-button{background:linear-gradient(45deg,#6b7280,#4b5563);color:#fff}.expand-button:hover{background:linear-gradient(45deg,#4b5563,#374151);transform:translateY(-1px)}.add-event-button{background:linear-gradient(45deg,#10b981,#059669);color:#fff}.add-event-button:hover{background:linear-gradient(45deg,#34d399,#10b981);transform:translateY(-1px)}.timeline-edit-form{display:flex;align-items:center;grid-gap:.7rem;gap:.7rem;width:100%}.timeline-edit-form input[type=text]{flex:1 1;padding:.8rem 1rem;border:2px solid #e0e6ed;border-radius:10px;font-size:1rem;background:#fff;transition:all .2s ease}.timeline-edit-form input[type=text]:focus{border-color:var(--color-accent);outline:none;box-shadow:0 0 0 3px color-mix(in oklab,var(--color-accent) 20%,transparent)}.timeline-edit-form button{padding:.7rem 1.2rem;border:none;border-radius:10px;font-size:.95rem;font-weight:700;cursor:pointer;transition:all .2s ease;white-space:nowrap}.timeline-edit-form button:first-of-type{background:linear-gradient(45deg,var(--color-accent),var(--color-accent));color:#fff}.timeline-edit-form button:first-of-type:hover:not(:disabled){background:linear-gradient(45deg,color-mix(in oklab,var(--color-accent) 85%,#fff),var(--color-accent));transform:translateY(-1px)}.timeline-edit-form button:first-of-type:disabled{opacity:.5;cursor:not-allowed}.timeline-edit-form button:last-of-type{background:linear-gradient(45deg,#6b7280,#4b5563);color:#fff}.timeline-edit-form button:last-of-type:hover{background:linear-gradient(45deg,#4b5563,#374151);transform:translateY(-1px)}.timeline-events-list{margin-top:1rem;padding-top:1rem;border-top:1px solid #e5e7eb}.timeline-events-list ul{list-style:none;padding:0;margin:0}.timeline-events-list li{display:flex;justify-content:space-between;align-items:center;background:#f9fafb;border:1px solid #e5e7eb;border-radius:6px;padding:.6rem .9rem;margin-bottom:.5rem;font-size:.95rem}.timeline-events-list li .event-row-left{display:inline-flex;align-items:center;grid-gap:.5rem;gap:.5rem}.timeline-events-list li .event-row-right{display:inline-flex;align-items:center;grid-gap:.4rem;gap:.4rem}.timeline-events-list .event-edit-button{padding:.45rem .9rem;background:linear-gradient(45deg,var(--color-accent),var(--color-accent));color:#fff;border:none;border-radius:8px;font-size:.9rem;font-weight:700;cursor:pointer;transition:all .2s ease;text-transform:uppercase}.timeline-events-list .event-edit-button:hover{background:linear-gradient(45deg,color-mix(in oklab,var(--color-accent) 85%,#fff),var(--color-accent));transform:translateY(-1px)}.timeline-events-list .event-edit-button:disabled{opacity:.5;cursor:not-allowed}.timeline-events-list li:hover{background:#f3f4f6;border-color:#d1d5db}.timeline-entry-row.drag-over{outline:2px dashed #667eea;outline:2px dashed var(--color-accent,#667eea);background:color-mix(in oklab,var(--color-accent) 8%,#f3f4f6)}.drag-handle{display:none;color:#6b7280;margin-right:.5rem}@media (max-width:768px){.drag-handle.mobile-only{display:inline-flex;align-items:center;justify-content:center;padding:.25rem;touch-action:none}.timeline-events-list li{grid-gap:.5rem;gap:.5rem}}.event-name{font-weight:500;color:#374151}.event-position{font-size:.85rem;color:#6b7280;font-style:italic}.no-events{padding:1rem;font-size:.95rem}.empty-message,.no-events{text-align:center;color:#9ca3af;font-style:italic}.empty-message{padding:2rem;font-size:1rem}@media (max-width:768px){.manage-timelines-panel{padding:1.5rem}.timeline-actions{width:100%}.timeline-actions button{flex:1 1;min-width:-moz-fit-content;min-width:fit-content}}.timeline-side-panel{margin-top:auto}.panel-actions{display:flex;flex-direction:column;justify-content:center;align-items:center;width:100%}.timeline-container{display:flex;flex-direction:column;min-height:0;position:relative;height:100%}.timeline-graph-wrapper{height:500px}.timeline-graph-canvas{width:100%;height:100%}.timeline-side-panel-minimized{display:flex;flex-direction:column;align-items:center;background:var(--color-surface);border-top:2px solid color-mix(in oklab,var(--color-text) 10%,transparent)}.timeline-side-panel-minimized.timeline-side-panel{height:40vh}.timeline-side-panel-minimized.minimized{height:auto}.editor-toggle-btn{padding:.8rem 1.5rem;background:linear-gradient(45deg,var(--color-accent),var(--color-accent));color:#fff;border:none;border-radius:25px;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .3s ease;text-transform:uppercase;letter-spacing:.5px;box-shadow:0 4px 15px color-mix(in oklab,var(--color-accent) 30%,transparent);min-width:100px;width:50%;margin-top:.5rem}.editor-toggle-btn:hover{background:linear-gradient(45deg,color-mix(in oklab,var(--color-accent) 85%,#fff),var(--color-accent));transform:translateY(-2px);box-shadow:0 6px 20px color-mix(in oklab,var(--color-accent) 40%,transparent)}.editor-toggle-btn:focus{outline:3px solid color-mix(in oklab,var(--color-accent) 50%,transparent);outline-offset:2px}.loading-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:1000}.loading-spinner{width:50px;height:50px;border:5px solid hsla(0,0%,100%,.3);border-top-color:#fff;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.error-banner{background:#fee;color:#c00;padding:1rem;text-align:center;border-bottom:2px solid #c00}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;color:#6b7280}.empty-state-icon{font-size:4rem;margin-bottom:1rem}.empty-state h3{margin:0 0 .5rem;font-size:1.5rem;color:#374151}.empty-state p{margin:0;font-size:1rem}:root{--slate-50:#f8fafc;--slate-100:#f1f5f9;--slate-200:#e2e8f0;--slate-300:#cbd5e1;--slate-400:#94a3b8;--slate-500:#64748b;--slate-600:#475569;--slate-700:#334155;--slate-800:#1e293b;--slate-900:#0f172a;--slate-950:#020617;--slate-50-rgb:248 250 252;--slate-100-rgb:241 245 249;--slate-200-rgb:226 232 240;--slate-300-rgb:203 213 225;--slate-400-rgb:148 163 184;--slate-500-rgb:100 116 139;--slate-600-rgb:71 85 105;--slate-700-rgb:51 65 85;--slate-800-rgb:30 41 59;--slate-900-rgb:15 23 42;--slate-950-rgb:2 6 23;--color-bg:var(--slate-50);--color-bg-alt:var(--slate-100);--color-surface:#fff;--color-surface-alt:var(--slate-50);--color-border:var(--slate-200);--color-border-strong:var(--slate-300);--color-ring:rgba(var(--slate-900-rgb),0.1);--color-overlay:rgba(var(--slate-900-rgb),0.38);--color-text:var(--slate-900);--color-text-muted:var(--slate-600);--color-text-subtle:var(--slate-500);--color-text-inverse:#fff;--color-accent:var(--slate-900);--color-accent-contrast:#fff;--color-accent-hover:#0c1322;--color-accent-soft:rgba(var(--slate-900-rgb),0.05);--color-focus-outline:rgba(var(--slate-900-rgb),0.5);--color-shadow:rgba(var(--slate-900-rgb),0.08) 0 2px 4px;--color-shadow-lg:rgba(var(--slate-900-rgb),0.12) 0 4px 18px;--color-track:rgba(var(--slate-900-rgb),0.12);--hero-h:140px;--section-gap:8px;--timeline-h:120px;--color-accent-2:var(--slate-600)}[data-theme=dark]{--color-bg:var(--slate-950);--color-bg-alt:var(--slate-900);--color-surface:var(--slate-900);--color-surface-alt:var(--slate-800);--color-border:var(--slate-700);--color-border-strong:var(--slate-600);--color-ring:rgba(var(--slate-50-rgb),0.15);--color-overlay:rgba(var(--slate-950-rgb),0.6);--color-text:var(--slate-50);--color-text-muted:var(--slate-400);--color-text-subtle:var(--slate-500);--color-text-inverse:var(--slate-900);--color-accent:var(--slate-50);--color-accent-contrast:var(--slate-900);--color-accent-hover:#fff;--color-accent-soft:rgba(var(--slate-50-rgb),0.08);--color-focus-outline:rgba(var(--slate-50-rgb),0.55);--color-shadow:rgba(var(--slate-950-rgb),0.5) 0 2px 6px;--color-shadow-lg:rgba(var(--slate-950-rgb),0.6) 0 6px 28px;--color-track:rgba(var(--slate-50-rgb),0.15)}body,html{background:#f8fafc;background:var(--color-bg);color:#0f172a;color:var(--color-text)}a{color:#0f172a;color:var(--color-accent)}.card,.panel,.surface{color:#0f172a;color:var(--color-text)}.bg-surface,.card,.panel,.surface{background:#fff;background:var(--color-surface)}.bg-surface-alt{background:#f8fafc;background:var(--color-surface-alt)}.bg-accent{background:#0f172a;background:var(--color-accent);color:#fff;color:var(--color-accent-contrast)}.bg-accent-soft{background:rgba(15,23,42,.05);background:var(--color-accent-soft)}.text-muted{color:#475569;color:var(--color-text-muted)}.text-subtle{color:#64748b;color:var(--color-text-subtle)}.btn,.button,.nav-button-primary{background:#0f172a;background:var(--color-accent);color:#fff;color:var(--color-accent-contrast);border:1px solid #0f172a;border:1px solid var(--color-accent)}.btn:hover,.button:hover,.nav-button-primary:hover{background:#0c1322;background:var(--color-accent-hover)}.button-secondary,.nav-button-secondary{background:rgba(15,23,42,.05);background:var(--color-accent-soft);color:#0f172a;color:var(--color-text);border:1px solid #e2e8f0;border:1px solid var(--color-border)}.button-outline,.nav-button-outline{background:transparent;color:#0f172a;color:var(--color-accent);border:2px solid #0f172a;border:2px solid var(--color-accent)}.button-outline:hover,.nav-button-outline:hover{background:rgba(15,23,42,.05);background:var(--color-accent-soft)}.focus-outline:focus{outline:2px solid rgba(15,23,42,.5);outline:2px solid var(--color-focus-outline);outline-offset:2px}.shadow-base{box-shadow:0 2px 4px rgba(15,23,42,.08);box-shadow:var(--color-shadow)}.shadow-lg{box-shadow:0 4px 18px rgba(15,23,42,.12);box-shadow:var(--color-shadow-lg)}.trees-page{background:#f8fafc!important;background:var(--color-bg)!important;display:flex;flex-direction:column}.trees-hero{color:#0f172a;color:var(--color-text);padding:0 1rem;min-height:140px;min-height:var(--hero-h)}.trees-hero,.trees-hero-content{display:flex;align-items:center;justify-content:center}.trees-hero-content{margin:0;flex-direction:column;text-align:center}.trees-title{color:#0f172a;color:var(--color-text);font-size:clamp(1.25rem,3.2vw,2rem);margin-bottom:4px;line-height:1.15}.trees-subtitle{color:color-mix(in oklab,#0f172a 70%,transparent);color:color-mix(in oklab,var(--color-text) 70%,transparent);font-size:clamp(.9rem,2.2vw,1rem);margin-bottom:.5rem}.trees-content{min-height:0;grid-gap:8px;gap:8px;grid-gap:var(--section-gap);gap:var(--section-gap);padding:8px 12px;border-radius:0;margin-top:0}.trees-content,.trees-section{flex:0 1 auto;display:flex;flex-direction:column;overflow:auto}.trees-section{padding:8px}.trees-section-header{margin:0 auto 8px!important;text-align:center;margin-bottom:3rem;max-width:600px}.trees-section-header h2{font-size:1.5rem;color:#333;margin:0 0 1rem;font-weight:700}.trees-section-header p{margin:0;color:#666;font-size:.95rem}.tab-switcher{display:flex;grid-gap:8px;gap:8px;margin-bottom:12px;justify-content:center}.tab-button{border:1px solid hsla(0,0%,100%,.2);background:hsla(0,0%,50.2%,.16);color:#0f172a;color:var(--color-text);padding:6px 12px;border-radius:10px;cursor:pointer;transition:background .2s ease,transform .15s ease}.tab-button:hover{background:hsla(0,0%,100%,.25);transform:translateY(-1px)}.tab-button.active{background:#dbedff;background:var(--toggle-button-color-clicked);color:#1a1a1a;font-weight:600}.trees-section-header{margin-bottom:8px!important}.pane-select{grid-gap:8px;gap:8px;margin:0 auto}.nav-button,.pane-select{display:inline-flex;align-items:center}.nav-button{justify-content:center}.top-pane{min-height:0;flex:0 1 auto}.bottom-pane{min-height:0;display:flex;flex-direction:column;grid-gap:12px;gap:12px;flex:0 1 auto}.bottom-pane .trees-section{flex:0 0 auto;overflow:visible}.create-tree-button:focus{outline:3px solid hsla(0,0%,100%,.5);outline-offset:2px}.tree-card:focus{outline:3px solid #0f172a;outline:3px solid var(--color-accent);outline-offset:2px}@media (max-width:768px){:root{--hero-h:120px}.trees-content{padding:3rem 1rem;border-radius:20px 20px 0 0;margin-top:-15px}.trees-section-header h2{font-size:2rem}.trees-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));grid-gap:1.5rem;gap:1.5rem}.tree-card{padding:2rem 1.5rem}.create-tree-button{padding:1rem 2rem;font-size:1rem}}@media (max-width:480px){.trees-hero{padding:1.5rem 1rem 3rem}.trees-title{font-size:2rem}.trees-content{padding:2rem 1rem;margin-top:-10px}.trees-grid{grid-template-columns:1fr}.empty-state-icon{font-size:4rem}.empty-state h2{font-size:2rem}}.tree-card.loading{opacity:.7;pointer-events:none}:root{--tree-card-icon-size:3rem;--tree-card-icon-margin:1.5rem;--tree-card-title-size:1.5rem;--tree-card-title-margin:0.5rem;--tree-card-subtitle-size:1rem}.connections-carousel{display:flex;align-items:center;justify-content:center;grid-gap:12px;gap:12px;flex:0 1 auto;min-height:0}.connections-carousel .tree-card{padding:2.5rem 2rem;box-shadow:0 3px 12px rgba(0,0,0,.08);min-width:300px}.connections-carousel .tree-card-icon{font-size:3rem;font-size:var(--tree-card-icon-size);margin-bottom:1.5rem;margin-bottom:var(--tree-card-icon-margin)}.connections-carousel .tree-card-title{font-size:1.5rem;font-size:var(--tree-card-title-size);margin-bottom:.5rem;margin-bottom:var(--tree-card-title-margin)}.connections-carousel .tree-card-subtitle{font-size:1rem;font-size:var(--tree-card-subtitle-size)}.nav-button{height:36px;padding:0 10px;align-self:center}.pane-select select{padding:6px 8px;font-size:.95rem}.pane-select label{font-size:.95rem}.trees-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));grid-gap:2rem;gap:2rem;max-width:1200px;margin:0 auto;padding:0 2rem}@media (max-width:768px){.trees-grid{grid-template-columns:1fr!important;grid-gap:1.5rem;gap:1.5rem;padding:0 1rem}}@media (max-width:480px){.trees-grid{grid-template-columns:1fr!important;grid-gap:1rem;gap:1rem;padding:0 .5rem}}.tree-card{background:#f8f9fa;border-radius:20px;padding:2.5rem 2rem;text-align:center;cursor:pointer;transition:all .3s ease;box-shadow:0 5px 20px rgba(0,0,0,.1);border:2px solid transparent;position:relative;overflow:hidden}.tree-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,#0f172a,color-mix(in oklab,#0f172a 80%,#475569));background:linear-gradient(90deg,var(--color-accent),color-mix(in oklab,var(--color-accent) 80%,var(--color-accent-2)))}.tree-card:hover{transform:translateY(-5px);box-shadow:0 10px 30px rgba(0,0,0,.15);border-color:#0f172a;border-color:var(--color-accent);background:#fff}.tree-card-icon{font-size:3rem;font-size:var(--tree-card-icon-size);margin-bottom:1.5rem;margin-bottom:var(--tree-card-icon-margin);animation:gentle-bounce 2s ease-in-out infinite}@keyframes gentle-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}.tree-card-title{font-size:1.5rem;font-size:var(--tree-card-title-size);color:#333;margin-bottom:.5rem;margin-bottom:var(--tree-card-title-margin);font-weight:600}.tree-card-subtitle{color:#666;font-size:1rem;font-size:var(--tree-card-subtitle-size);margin:0;opacity:.8}.tree-card:hover .tree-card-subtitle{color:#0f172a;color:var(--color-accent);opacity:1}.empty-state{text-align:center;max-width:600px;margin:0 auto}.empty-state-icon{font-size:3rem;opacity:.6;animation:gentle-sway 3s ease-in-out infinite}@keyframes gentle-sway{0%,to{transform:rotate(-2deg)}50%{transform:rotate(2deg)}}.empty-state h2{font-size:2.5rem;color:#333;margin-bottom:1rem;font-weight:700}.empty-state p{color:#666;font-size:.75rem;line-height:1.6}.create-tree-button{padding:1.2rem 2.5rem;background:linear-gradient(45deg,#0f172a,#0f172a);background:linear-gradient(45deg,var(--color-accent),var(--color-accent));color:#fff;border:none;border-radius:50px;font-size:1.1rem;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 15px rgba(0,0,0,.2);display:inline-flex;align-items:center;grid-gap:.8rem;gap:.8rem;text-transform:uppercase;letter-spacing:1px}.create-tree-button:hover{background:linear-gradient(45deg,color-mix(in oklab,#0f172a 85%,#fff),#0f172a);background:linear-gradient(45deg,color-mix(in oklab,var(--color-accent) 85%,#fff),var(--color-accent));transform:translateY(-2px);box-shadow:0 6px 20px rgba(0,0,0,.3)}.create-tree-button:active{transform:translateY(0)}.button-icon{font-size:1.2rem}:root{--toggle-button-font-size:1.0rem;--toggle-button-color-clicked:#dbedff}.universe-back-nav{display:flex;align-items:center;grid-gap:8px;gap:8px;padding:12px;z-index:1000}.universe-back-button{background:transparent;border:none;color:#0f172a;color:var(--color-text);cursor:pointer;padding:8px;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.universe-back-button svg{width:24px;height:24px}.universe-back-text{color:#0f172a;color:var(--color-text);font-size:2rem;font-weight:600;padding:4px 8px;border-radius:4px;border:1px solid hsla(0,0%,100%,.2)}.universe-back-button:hover{color:#0f172a;color:var(--color-accent);transform:scale(1.1)}.universe-back-button:active{transform:scale(.95)}@media (max-width:768px){.universe-back-nav{padding:8px;grid-gap:6px;gap:6px}.universe-back-button{padding:6px}.universe-back-button svg{width:20px;height:20px}.universe-back-text{font-size:.8rem;padding:3px 6px}}.view-toggle-button{background:hsla(0,0%,50.2%,.2);border:none;color:#0f172a;color:var(--color-text);padding:8px 16px;border-radius:10px;cursor:pointer;font-size:1rem;font-size:var(--toggle-button-font-size);font-weight:500;transition:all .2s ease;white-space:nowrap}.view-toggle-button:hover{background:hsla(0,0%,50.2%,.3);color:#0f172a;color:var(--color-text)}.view-toggle-button.active{background:#dbedff;background:var(--toggle-button-color-clicked);color:#1a1a1a;font-weight:600;box-shadow:0 2px 8px rgba(0,0,0,.1)}.timeline-toggle-button{background:hsla(0,0%,50.2%,.2);border:none;color:#0f172a;color:var(--color-text);padding:2px 16px;border-radius:10px;cursor:pointer;font-size:1rem;font-size:var(--toggle-button-font-size);font-weight:500;transition:all .2s ease;white-space:nowrap}.timeline-toggle-button:hover{background:hsla(0,0%,50.2%,.3);color:#0f172a;color:var(--color-text)}.timeline-toggle-button.active{background:#dbedff;background:var(--toggle-button-color-clicked);color:#1a1a1a;font-weight:600;box-shadow:0 2px 8px rgba(0,0,0,.1)}.ushow-action-buttons{margin-top:8px;display:flex;grid-gap:8px;gap:8px;flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}.ushow-action-buttons--center{justify-content:center}.ushow-action-buttons::-webkit-scrollbar{display:none}.ushow-actions-row{position:relative;width:100%;display:flex;align-items:center;justify-content:center}.ushow-action-button{background:hsla(0,0%,50.2%,.18);border:1px solid hsla(0,0%,100%,.25);color:#0f172a;color:var(--color-text);padding:6px 14px;border-radius:8px;cursor:pointer;font-size:.85rem;font-weight:500;line-height:1.1;backdrop-filter:blur(6px);transition:background .18s ease,transform .15s ease}.ushow-action-button:hover{background:hsla(0,0%,100%,.25);transform:translateY(-1px)}.ushow-action-button:active{transform:translateY(0)}.ushow-action-button.danger{background:rgba(255,59,48,.16);border-color:rgba(255,59,48,.5);color:#ff3b30}.ushow-action-button.danger:hover{background:rgba(255,59,48,.28);color:#ff3b30}.ushow-action-button:disabled{opacity:.6;cursor:not-allowed;transform:none}.ushow-actions-scroll-icon{background:hsla(0,0%,100%,.12);border:1px solid hsla(0,0%,100%,.2);border-radius:999px;padding:6px 8px;font-weight:700;letter-spacing:1px;color:#0f172a;color:var(--color-text)}.ushow-danger-hint{color:#ff6b6b}.ushow-danger-hint,.ushow-danger-text{text-align:center;font-size:.9rem;margin-top:4px}.ushow-danger-text{color:#ff3b30}.universe-show{height:100vh;overflow:hidden;position:relative}.ushow-page{height:100%;display:flex;flex-direction:column}.ushow-content{flex:1 1;display:flex;flex-direction:column;grid-gap:8px;gap:8px;overflow:hidden;padding:8px 12px}.ushow-section{display:flex;flex-direction:column}.ushow-top-pane{padding:4px;flex:0 0 auto}.ushow-middle-pane{padding:4px;flex:1 1 auto;min-height:0}.ushow-bottom-pane{flex:0 0 auto;display:flex;flex-direction:column;grid-gap:0;gap:0}.timeline-pane-collapsed{min-height:0!important;padding-top:6px;padding-bottom:6px}.timeline-collapse-bar{display:flex;justify-content:center;padding:6px 0}.ushow-section-header{display:flex;flex-direction:column;align-items:center;justify-content:center;margin:0 0 4px;padding:0}.ushow-pane-select{background:hsla(0,0%,100%,.1);border-radius:25px;padding:4px;display:inline-flex;grid-gap:4px;gap:4px;backdrop-filter:blur(8px);border:1px solid hsla(0,0%,100%,.2)}.ushow-timeline-header{margin-top:4px}.ushow-timeline-select{background:hsla(0,0%,100%,.1);border-radius:25px;padding:4px;display:inline-flex;grid-gap:8px;gap:8px;backdrop-filter:blur(8px);border:1px solid hsla(0,0%,100%,.2);max-width:100%;white-space:nowrap;overflow-x:auto;scrollbar-width:none}.ushow-timeline-select::-webkit-scrollbar{display:none}.timeline-graph-wrapper{width:100%;height:12vh;position:relative;display:flex;flex:0 0 auto;overflow:hidden}.timeline-graph-wrapper .react-transform-component,.timeline-graph-wrapper .react-transform-wrapper,.timeline-graph-wrapper .timeline-graph-canvas,.timeline-graph-wrapper>div{display:flex;flex:1 1 auto;width:100%;height:100%;min-height:0;overflow:visible}.timeline-graph-wrapper svg{width:100%;height:100%;display:block}.ushow-tree-inline-wrapper{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;overflow:hidden}.ushow-tree-inline-title{margin:0 0 4px;padding:0 4px;font-size:.95rem;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ushow-tree-inline-canvas{flex:1 1 auto;min-height:0;display:flex;position:relative}.ushow-tree-inline-canvas svg{width:100%;height:100%;display:block}.ushow-timeline-stack{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;grid-gap:8px;gap:8px;overflow:hidden}.ushow-timeline-events-scroll{flex:0 0 auto;display:flex;grid-gap:8px;gap:8px;overflow-x:auto;overflow-y:hidden;padding:8px 4px 16px;-ms-overflow-style:none;scrollbar-width:none;-webkit-overflow-scrolling:touch}.ushow-timeline-events-scroll::-webkit-scrollbar{display:none}.timeline-event-chip{background:hsla(0,0%,50.2%,.18);border:1px solid hsla(0,0%,100%,.25);color:#0f172a;color:var(--color-text);padding:2px 12px;border-radius:999px;cursor:pointer;font-size:1rem;font-size:var(--toggle-button-font-size);font-weight:500;white-space:nowrap;backdrop-filter:blur(6px);transition:background .18s ease,transform .15s ease,box-shadow .2s ease;display:flex;align-items:center}.timeline-event-chip:hover{background:hsla(0,0%,100%,.25);transform:translateY(-1px)}.timeline-event-chip:active{transform:translateY(0)}.timeline-event-chip.selected{background:#dbedff;background:var(--toggle-button-color-clicked);color:#1a1a1a;box-shadow:0 2px 8px rgba(0,0,0,.1)}.chip-info-btn{display:flex;align-items:center;justify-content:center;margin-left:6px}.universe-show .trees-hero{min-height:auto;padding:8px 12px;justify-content:center;flex:0 0 auto}.universe-show .trees-hero-content{max-width:none;width:100%;text-align:center}.universe-show .trees-title{font-size:1.1rem;font-weight:700;margin:0;line-height:1.2}.universe-show .trees-subtitle{display:none}.tree-canvas-wrapper,.tree-graph-canvas{display:flex;width:100%;height:100%;position:relative;overflow:hidden}.tree-canvas-wrapper svg{width:100%;height:100%;display:block}.tree-graph-canvas .react-transform-component,.tree-graph-canvas .react-transform-element,.tree-graph-canvas .react-transform-wrapper{width:100%;height:100%;display:flex;flex:1 1 auto}.universe-show .trees-content{display:flex;flex-direction:column}.universe-show .connections-carousel{grid-gap:8px;gap:8px;padding:8px 0;flex:0 1 auto;min-height:0}.universe-show .connections-carousel .tree-card{padding:2.5rem 2rem;min-height:0}.universe-show .nav-button{height:32px;min-width:32px;padding:0 8px;font-size:.9rem}.universe-show .trees-section .trees-grid{grid-gap:12px;gap:12px;flex:0 1 auto;min-height:0}.universe-show .tree-card{cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.universe-show .tree-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,.15)}.universe-show .tree-card:active{transform:translateY(0)}.universe-show .timeline-scroll{flex:0 0 auto;overflow-x:auto;overflow-y:visible;padding:20px 0;display:flex;justify-content:center}.universe-show .timeline-container{margin:0;padding:0;position:relative;width:100%;min-width:100%}.universe-show .timeline-track{position:absolute;top:50%;left:0;width:100%;right:auto;height:8px;border-radius:999px;background:linear-gradient(90deg,rgba(15,23,42,.12),rgba(15,23,42,.12));background:linear-gradient(90deg,var(--color-track),var(--color-track));box-shadow:inset 0 1px 2px rgba(0,0,0,.06)}.subview-wrapper{width:100%;height:100%;display:flex;flex-direction:column}