@font-face{font-family:Roboto;font-style:normal;font-weight:400 500;font-display:swap;src:url(/fonts/roboto-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Roboto;font-style:normal;font-weight:400 500;font-display:swap;src:url(/fonts/roboto-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/space-grotesk-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/space-grotesk-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--font-display:"Space Grotesk", ui-sans-serif, system-ui, sans-serif;--font-body:"Roboto", ui-sans-serif, system-ui, sans-serif;--text-xs:.75rem;--text-sm:.875rem;--text-md:1rem;--text-lg:1.125rem;--text-xl:1.375rem;--text-2xl:clamp(1.7rem, 1.4rem + 1.2vw, 2.2rem);--text-display:clamp(2.2rem, 1.7rem + 2.6vw, 3.4rem);--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;--space-8:4rem;--radius-pill:999px;--shadow:0 24px 60px -28px #000000bf;--duration-fast:.12s;--duration:.18s;--duration-slow:.28s;--ease-out:cubic-bezier(.16, .8, .3, 1)}:root[data-theme=midnight-ink]{--bg:#07080f;--surface:#101322;--surface-raised:#181c30;--border:#252a4a;--text:#e8eaf6;--text-muted:#a3a9c9;--accent:#8b9cff;--accent-hover:#a5b3ff;--on-accent:#07080f;--success:#4ade80;--warning:#fbbf24;--danger:#f87171;--info:#8b9cff;--focus-ring:#8b9cff;--radius-sm:8px;--radius:10px;--radius-lg:14px;--text-faint:color-mix(in oklab, var(--text-muted) 78%, var(--bg));--border-strong:color-mix(in oklab, var(--border) 50%, var(--text-muted));--surface-high:#1f2440;--accent-container:#26305a;--outline:#39406a;--text-soft:#c3c9e4;--on-accent-container:#dfe4ff;--radius-card:20px;--radius-row:14px;--radius-control:14px}:root[data-theme=desert-jackal]{--bg:#0c0907;--surface:#181210;--surface-raised:#221915;--border:#3d2c22;--text:#f2e6d6;--text-muted:#b8a590;--accent:#e5654a;--accent-hover:#ee7c63;--on-accent:#0c0907;--success:#4ade80;--warning:#fbbf24;--danger:#ff8a7a;--info:#7db7e8;--focus-ring:#e5654a;--radius-sm:0;--radius:2px;--radius-lg:2px;--text-faint:color-mix(in oklab, var(--text-muted) 78%, var(--bg));--border-strong:color-mix(in oklab, var(--border) 50%, var(--text-muted));--surface-high:#2b201b;--accent-container:#3a221b;--outline:#4d3a2f;--text-soft:#d8c6b2;--on-accent-container:#ffd9cf;--radius-card:2px;--radius-row:2px;--radius-control:2px}:root[data-theme=nile-emerald]{--bg:#050806;--surface:#0d1410;--surface-raised:#14201a;--border:#1e3328;--text:#e3f2e8;--text-muted:#9db8a8;--accent:#3ddc97;--accent-hover:#62e8ab;--on-accent:#050806;--success:#3ddc97;--warning:#fbbf24;--danger:#f87171;--info:#7dd3fc;--focus-ring:#3ddc97;--radius-sm:12px;--radius:16px;--radius-lg:20px;--text-faint:color-mix(in oklab, var(--text-muted) 78%, var(--bg));--border-strong:color-mix(in oklab, var(--border) 50%, var(--text-muted));--surface-high:#1a2a22;--accent-container:#133328;--outline:#2c4a3b;--text-soft:#c4d8ca;--on-accent-container:#c9ffe5;--radius-card:24px;--radius-row:16px;--radius-control:999px}:root[data-theme=obsidian-death]{--bg:#050507;--surface:#0d0f14;--surface-raised:#151822;--border:#232836;--text:#f5f7fa;--text-muted:#9aa3b2;--accent:#9cc2ff;--accent-hover:#b9d3ff;--on-accent:#050507;--success:#4ade80;--warning:#fbbf24;--danger:#f87171;--info:#9cc2ff;--focus-ring:#9cc2ff;--radius-sm:4px;--radius:6px;--radius-lg:10px;--text-faint:color-mix(in oklab, var(--text-muted) 78%, var(--bg));--border-strong:color-mix(in oklab, var(--border) 50%, var(--text-muted));--surface-high:#1a1f2b;--accent-container:#1e2a44;--outline:#3a4256;--text-soft:#b7c0cf;--on-accent-container:#cfe0ff;--radius-card:24px;--radius-row:16px;--radius-control:26px}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);min-height:100dvh;color:var(--text);font-family:var(--font-body);font-size:var(--text-md);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;line-height:1.5}h1,h2,h3,h4,p,dl,dd,figure{margin:0}h1,h2,h3{font-family:var(--font-body);letter-spacing:-.01em;font-weight:500;line-height:1.15}a{color:inherit}button,input,select,textarea{font:inherit;color:inherit}::selection{background:color-mix(in oklab, var(--accent) 35%, var(--bg));color:var(--text)}:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{top:var(--space-3);left:var(--space-3);z-index:100;background:var(--text);color:var(--bg);padding:var(--space-2) var(--space-4);border-radius:var(--radius);font-weight:600;text-decoration:none;position:fixed;transform:translateY(-200%)}.skip-link:focus{transform:none}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.shell{grid-template-columns:minmax(0,1fr);min-height:100dvh;display:grid}.content{min-width:0;padding:clamp(20px,3.6vw,48px) clamp(16px,4vw,56px);padding-bottom:calc(var(--space-8) + 72px)}@media (width>=960px){.shell{grid-template-columns:100px minmax(0,1fr)}.content{padding-top:clamp(28px,3.6vw,56px);padding-bottom:var(--space-8)}}.page{max-width:1080px;animation:page-in var(--duration-slow) var(--ease-out);margin:0 auto}.page-narrow{max-width:720px}.lost-page{padding-top:var(--space-7);text-align:center}.lost-mark{margin:0 auto var(--space-5);color:var(--text-faint);display:block}@keyframes page-in{0%{opacity:0;transform:translateY(4px)}}.sidebar{display:none}@media (width>=960px){.sidebar{align-items:center;gap:var(--space-5);height:100dvh;padding:var(--space-4) 8px;border-right:1px solid var(--border);background:var(--surface);flex-direction:column;display:flex;position:sticky;top:0}}.rail-logo{color:var(--accent);padding:6px;display:flex}.nav-sidebar{width:100%}.topbar{z-index:20;padding:var(--space-3) var(--space-4);background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0}@media (width>=960px){.topbar{display:none}}.topbar-row{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.topbar-actions{align-items:center;gap:var(--space-3);min-width:0;display:flex}.theme-picker{display:inline-flex;position:relative}.theme-picker:after{content:"";border-right:1px solid var(--text-muted);border-bottom:1px solid var(--text-muted);pointer-events:none;width:6px;height:6px;margin-top:-4px;position:absolute;top:50%;right:9px;transform:rotate(45deg)}.theme-select{border:1px solid var(--outline);border-radius:var(--radius-control);background:var(--surface-raised);width:72px;min-height:36px;color:var(--text);appearance:none;padding:4px 16px 4px 7px;font-size:.66rem}.topbar .theme-select{width:auto;max-width:132px;padding:4px 20px 4px 10px}.brand{color:var(--text);align-items:center;width:fit-content;text-decoration:none;display:inline-flex}.logo{color:var(--accent);flex:none}.logo-lockup{align-items:center;gap:10px;display:inline-flex}.wordmark{font-family:var(--font-display);letter-spacing:.18em;text-transform:uppercase;color:var(--text);font-size:1.05rem;font-weight:600;line-height:1}.wordmark-accent{color:var(--accent)}.nav-list{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.nav-link{border-radius:var(--radius-row);min-height:56px;color:var(--text-muted);text-align:center;transition:background var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out);flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:6px 4px;font-size:.7rem;text-decoration:none;display:flex}.nav-link:hover{background:var(--surface-raised);color:var(--text)}.nav-link-active{background:var(--accent-container);color:var(--on-accent-container);font-weight:500}.nav-icon{flex:none;width:22px;height:22px}.nav-label{overflow-wrap:anywhere;font-size:.66rem;line-height:1.15}.sidebar-foot{width:100%;padding-top:var(--space-4);border-top:1px solid var(--border);align-items:center;gap:var(--space-2);text-align:center;flex-direction:column;margin-top:auto;display:flex}.signed-in{flex-direction:column;gap:1px;max-width:100%;display:flex}.signed-in-label{letter-spacing:.12em;text-transform:uppercase;color:var(--text-faint);font-size:.68rem;font-weight:700}.signed-in-name{max-width:100%;color:var(--text-muted);overflow-wrap:anywhere;font-size:.8rem}.text-button{min-height:32px;color:var(--text-muted);text-underline-offset:3px;cursor:pointer;background:0 0;border:0;align-self:flex-start;padding:4px 0;font-size:.82rem;text-decoration:underline}.text-button:hover{color:var(--accent-hover)}.page-head{justify-content:space-between;align-items:flex-start;gap:var(--space-3) var(--space-4);margin-bottom:var(--space-3);flex-wrap:wrap;display:flex}.eyebrow{margin-bottom:var(--space-2);color:var(--text-muted);letter-spacing:.14em;text-transform:uppercase;font-size:.7rem;font-weight:700}.page-title{font-size:var(--text-2xl);letter-spacing:-.02em}.page-lede{max-width:64ch;margin-bottom:var(--space-5);color:var(--text-muted);font-size:1rem}.crumbs{align-items:center;gap:var(--space-2);margin-bottom:var(--space-4);color:var(--text-muted);overflow-wrap:anywhere;font-size:.82rem;display:flex}.crumbs a{color:var(--text-muted);border-bottom:1px solid #0000;text-decoration:none}.crumbs a:hover{color:var(--text);border-bottom-color:var(--border-strong)}.crumb-separator{color:var(--text-faint)}.button{justify-content:center;align-items:center;gap:var(--space-2);min-height:48px;padding:0 var(--space-5);border-radius:var(--radius-control);font-family:var(--font-body);text-align:center;white-space:nowrap;cursor:pointer;transition:background var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out);border:1px solid #0000;font-size:.95rem;font-weight:500;line-height:1.2;text-decoration:none;display:inline-flex}.button:active:not(:disabled){transform:translateY(1px)}.button:disabled{opacity:.55;cursor:not-allowed}.button-primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.button-primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.button-secondary{border-color:var(--outline);color:var(--text);background:0 0}.button-secondary:hover:not(:disabled){background:var(--surface-raised);border-color:var(--text-faint)}.button-ghost{color:var(--text-muted);background:0 0;border-color:#0000}.button-ghost:hover:not(:disabled){background:var(--surface-raised);color:var(--text)}.button-danger{background:var(--danger);border-color:var(--danger);color:var(--on-accent)}.button-danger:hover:not(:disabled){filter:brightness(.94)}.button-danger-text{color:var(--danger)}.button-danger-text:hover:not(:disabled){background:color-mix(in oklab, var(--danger) 15%, var(--surface));color:var(--danger)}.button-block{width:100%}.button-busy{display:inline-block}.button-row{gap:var(--space-2);flex-wrap:wrap;display:flex}.form{gap:var(--space-5);flex-direction:column;display:flex}.form-grid{gap:var(--space-4);grid-template-columns:minmax(0,1fr);display:grid}@media (width>=640px){.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid .span-2{grid-column:1/-1}}.form-row{gap:var(--space-4);grid-template-columns:minmax(0,1fr);display:grid}@media (width>=560px){.form-row{grid-template-columns:repeat(2,minmax(0,1fr))}}.form-subsection{gap:var(--space-3);flex-direction:column;display:flex}.form-actions{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.form-dirty{color:var(--text-faint);margin-left:auto;font-size:.78rem}.form-preview{padding-left:var(--space-3);border-left:2px solid var(--accent);color:var(--text-muted);margin:0;font-size:.9rem}.form-fixed{color:var(--text-muted);font-size:.9rem}.form-fixed a{margin-left:var(--space-2);color:var(--accent-hover)}.field{flex-direction:column;gap:6px;min-width:0;display:flex}.field-label{align-items:baseline;gap:var(--space-2);color:var(--on-accent-container);font-size:.81rem;font-weight:500;display:flex}.field-optional{color:var(--text-faint);letter-spacing:.07em;text-transform:uppercase;font-size:.68rem;font-weight:500}.field-hint{color:var(--text-muted);margin:0;font-size:.8rem;line-height:1.45}.field-error{color:var(--danger);margin:0;font-size:.82rem;font-weight:600;line-height:1.4}.input{border:1px solid var(--border);border-radius:var(--radius-control);background:var(--surface-raised);width:100%;min-height:52px;color:var(--text);font-family:var(--font-body);transition:border-color var(--duration-fast) var(--ease-out);padding:12px 18px;font-size:.95rem;line-height:1.4}.input:focus-visible{border-color:var(--accent);outline:2px solid var(--accent);outline-offset:0}.input::placeholder{color:var(--text-faint)}.input:hover{border-color:var(--text-faint)}.input-invalid{border-color:var(--danger);background:color-mix(in oklab, var(--danger) 15%, var(--surface))}.textarea{resize:vertical;min-height:120px}.select{padding-right:12px}.fieldset{gap:var(--space-3);border:0;flex-direction:column;min-width:0;margin:0;padding:0;display:flex}.fieldset>legend{color:var(--text);padding:0;font-size:.95rem;font-weight:500}.birthday-row{gap:var(--space-3);grid-template-columns:1fr 1fr 1.2fr;display:grid}.segmented{border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface);width:100%;display:flex;overflow:hidden}.segmented-option{justify-content:center;align-items:center;gap:var(--space-2);min-height:42px;color:var(--text-muted);text-align:center;cursor:pointer;flex:1;padding:8px 12px;font-size:.86rem;display:flex;position:relative}.segmented-option+.segmented-option{border-left:1px solid var(--border)}.segmented-option input{opacity:0;width:1px;height:1px;position:absolute}.segmented-option:has(input:focus-visible){outline:2px solid var(--focus-ring);outline-offset:-2px}.segmented-option-active{background:color-mix(in oklab, var(--accent) 18%, var(--surface));color:var(--text);font-weight:600}.segmented-option-active:before{content:"";background:var(--accent);border-radius:50%;flex:none;width:6px;height:6px}.panel{padding:var(--space-5);border:1px solid var(--border);border-radius:var(--radius-lg);background:radial-gradient(ellipse at 38% 30%, color-mix(in oklab, var(--accent) 8%, transparent), transparent 62%), radial-gradient(ellipse at 72% 74%, color-mix(in oklab, var(--text-muted) 7%, transparent), transparent 60%), var(--surface)}.form-panel{gap:var(--space-4);margin-top:var(--space-4);flex-direction:column;display:flex}.form-panel-title{font-size:1.2rem;line-height:1.2}.panel-title{margin-bottom:var(--space-2);font-size:1.15rem;font-weight:500}.panel-body{color:var(--text-muted);font-size:.92rem}.panel-actions{gap:var(--space-2);margin-top:var(--space-4);flex-wrap:wrap;display:flex}.panel-error{border-color:color-mix(in oklch, var(--danger) 35%, var(--border));background:color-mix(in oklab, var(--danger) 15%, var(--surface));margin-bottom:var(--space-4)}.notice{border:1px solid var(--border);border-left:3px solid var(--text-faint);border-radius:var(--radius);background:var(--surface-raised);color:var(--text);padding:12px 14px;font-size:.88rem;line-height:1.45}.notice-title{margin-bottom:2px;font-weight:700}.notice-body>p{margin:0}.notice-success{border-left-color:var(--success);background:color-mix(in oklab, var(--success) 15%, var(--surface))}.notice-warning{border-left-color:var(--warning);background:color-mix(in oklab, var(--warning) 15%, var(--surface))}.notice-error{border-left-color:var(--danger);background:color-mix(in oklab, var(--danger) 15%, var(--surface))}.profile-section>.notice{margin:var(--space-2) 0 var(--space-4)}.dialog-body .notice{margin-top:var(--space-2)}.empty-state{padding:var(--space-6) 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.empty-title{margin-bottom:var(--space-2);font-size:1.3rem;font-weight:500}.empty-body{max-width:54ch;color:var(--text-muted);font-size:.94rem}.empty-action{margin-top:var(--space-4)}.muted{color:var(--text-muted);margin:0;font-size:.88rem}.skeleton-list{flex-direction:column;display:flex}.skeleton-row{align-items:center;gap:var(--space-3);padding:var(--space-4) 0;border-bottom:1px solid var(--border);display:flex}.skeleton{border-radius:var(--radius-sm);background:var(--surface-raised);animation:1.4s ease-in-out infinite alternate pulse;display:block}@keyframes pulse{to{opacity:.6}}.skeleton-circle{border-radius:50%;flex:none;width:42px;height:42px}.skeleton-lines{flex-direction:column;flex:1;gap:8px;display:flex}.skeleton-line{width:58%;height:10px}.skeleton-line-strong{width:36%;height:14px}@keyframes shimmer{to{background-position:-200% 0}}.monogram{background:var(--surface-high);color:var(--on-accent-container);letter-spacing:.02em;border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:.9rem;font-weight:500;display:inline-flex}.monogram-small{width:32px;height:32px;font-size:.76rem}.monogram-medium{width:42px;height:42px}.monogram-large{border:1px solid var(--border-strong);background:var(--surface);width:64px;height:64px;font-size:1.35rem}.person-photo{object-fit:cover}.profile-photo{flex-direction:column;align-items:center;gap:.4rem;display:flex}.profile-head.is-dropping{outline:2px dashed var(--accent);outline-offset:8px;border-radius:var(--radius-card)}.profile-head.is-dropping .profile-photo-frame{box-shadow:0 0 0 4px var(--accent-container)}.photo-camera{display:none}@media (pointer:coarse){.photo-camera{display:inline-flex}}.profile-photo-frame{position:relative}.profile-photo .button{white-space:nowrap;padding:.15rem .5rem;font-size:.8rem}.profile-photo-edit{cursor:pointer;background:0 0;border:0;border-radius:50%;padding:0;position:absolute;inset:0}.profile-photo-edit:hover:not(:disabled){background:#0006}.profile-photo-edit:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.profile-photo-edit:disabled{cursor:progress}.profile-photo-add{border:1px solid var(--surface);background:var(--accent);width:26px;height:26px;color:var(--surface);pointer-events:none;border-radius:50%;place-items:center;font-size:1.1rem;font-weight:600;line-height:1;display:grid;position:absolute;bottom:-4px;right:-4px}.profile-photo-remove{border:1px solid var(--border-strong);background:var(--surface-raised);width:24px;height:24px;color:var(--text-muted);cursor:pointer;border-radius:50%;place-items:center;padding:0;font-size:.9rem;line-height:1;display:grid;position:absolute;top:-6px;right:-6px}.profile-photo-remove:hover:not(:disabled),.profile-photo-remove:focus-visible{border-color:var(--text-faint);color:var(--text)}.profile-photo-remove:disabled{cursor:progress;opacity:.6}.photo-editor{align-items:center;gap:var(--space-3);flex-direction:column;display:flex}.photo-editor-preview{border:1px solid var(--border-strong);background:var(--surface-high);cursor:grab;touch-action:none;border-radius:50%;flex:none}.photo-editor-preview:active{cursor:grabbing}.photo-editor-zoom{align-items:center;gap:var(--space-3);width:100%;max-width:248px;color:var(--text);display:flex}.photo-editor-zoom input[type=range]{appearance:none;cursor:pointer;background:0 0;flex:1;height:20px}.photo-editor-zoom input[type=range]::-webkit-slider-runnable-track{background:var(--surface-high);border-radius:999px;height:3px}.photo-editor-zoom input[type=range]::-webkit-slider-thumb{appearance:none;border:1px solid var(--border-strong);background:var(--accent);border-radius:50%;width:14px;height:14px;margin-top:-5.5px}.photo-editor-zoom input[type=range]::-moz-range-track{background:var(--surface-high);border-radius:999px;height:3px}.photo-editor-zoom input[type=range]::-moz-range-thumb{border:1px solid var(--border-strong);background:var(--accent);border-radius:50%;width:14px;height:14px}.photo-editor-zoom input[type=range]:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.directory{border-top:1px solid var(--border);margin:0;padding:0;list-style:none}.directory-row{border-bottom:1px solid var(--border)}.directory-link{align-items:center;gap:var(--space-3);border-radius:var(--radius-row);min-height:56px;color:inherit;transition:background var(--duration-fast) var(--ease-out);padding:8px 12px;text-decoration:none;display:flex}.directory-link:hover{background:var(--surface-high)}.directory-main{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.directory-name{letter-spacing:-.005em;overflow-wrap:anywhere;font-size:.98rem;font-weight:500;line-height:1.3}.directory-nickname{color:var(--text-muted);font-family:var(--font-body);font-size:.88rem;font-weight:400}.directory-meta{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:.82rem;overflow:hidden}.directory-edge{color:var(--text-faint);opacity:0;transition:opacity var(--duration-fast) var(--ease-out), transform var(--duration-fast) var(--ease-out);flex:none;font-size:1.05rem;transform:translate(-4px)}.directory-link:hover .directory-edge,.directory-link:focus-visible .directory-edge{opacity:1;transform:none}.results-refreshing .directory{opacity:.7;transition:opacity var(--duration-fast) var(--ease-out)}.load-more{align-items:flex-start;gap:var(--space-2);margin-top:var(--space-5);flex-direction:column;display:flex}.search-bar{max-width:520px;margin:var(--space-5) 0 var(--space-4);flex-direction:column;gap:6px;display:flex}.search-hero{margin-bottom:var(--space-5);border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface);padding:clamp(20px,3vw,32px)}.search-hero-head{justify-content:space-between;align-items:flex-start;gap:var(--space-3);flex-wrap:wrap;display:flex}.search-title{letter-spacing:-.02em;font-size:clamp(1.7rem,1.4rem + 1.2vw,2rem);font-weight:500}.search-lede{max-width:56ch;margin-top:var(--space-2);color:var(--text-muted);font-size:.95rem}.search-bar-hero{max-width:none;margin-bottom:0}.search-bar-hero .search-input{min-height:56px}.search-bar-hero .search-icon{left:20px}.search-bar-hero .search-input{padding-left:52px}.results-head{justify-content:space-between;align-items:baseline;gap:var(--space-3);margin-bottom:var(--space-2);padding-bottom:var(--space-2);border-bottom:1px solid var(--border);display:flex}.results-title{letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);font-size:.75rem;font-weight:500}.results-count{color:var(--text-muted);font-size:.82rem}.page-search .directory{border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface);padding:8px}.page-search .directory-row:last-child{border-bottom:0}.search-input-wrap{position:relative}.search-icon{width:18px;height:18px;color:var(--text-faint);pointer-events:none;position:absolute;top:50%;left:13px;transform:translateY(-50%)}.search-input{padding-left:40px}.profile-head{justify-content:space-between;align-items:flex-start;gap:var(--space-4);padding:var(--space-5);border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface);flex-wrap:wrap;display:flex}.profile-summary{justify-content:space-between;align-items:center;gap:var(--space-3);margin-top:var(--space-3);flex-wrap:wrap;display:flex}.profile-place{color:var(--text-muted);margin-top:4px;font-size:.85rem}.lock-chip{border:1px solid var(--border-strong);background:var(--surface-raised);color:var(--text-soft);border-radius:8px;align-items:center;gap:6px;padding:6px 10px;font-size:.78rem;display:inline-flex}.lock-chip svg{fill:none;stroke:currentColor;stroke-width:1.5px;flex:none;width:14px;height:14px}.profile-stats{gap:var(--space-2);flex-wrap:wrap;display:flex}.stat-box{border:1px solid var(--border);border-radius:var(--radius-row);background:var(--surface-raised);flex-direction:column;gap:2px;min-width:104px;padding:10px 16px;display:flex}.stat-value{font-size:1.25rem;font-weight:500;line-height:1.2}.stat-label{color:var(--text-muted);letter-spacing:.08em;text-transform:uppercase;font-size:.7rem}.detail-soft{color:var(--text-muted)}.map-links{gap:var(--space-3);flex-wrap:wrap;margin-top:4px;font-size:.82rem;display:flex}.profile-identity{align-items:center;gap:var(--space-4);min-width:0;display:flex}.profile-name{font-size:var(--text-display);letter-spacing:-.025em;overflow-wrap:anywhere;line-height:1.04}.profile-nickname{margin-top:var(--space-1);color:var(--text-muted);font-size:1rem}.profile-actions{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}@media (width<=719px){.profile-actions{justify-content:flex-end;width:100%}}.profile-grid{gap:var(--space-6);margin-top:var(--space-6);grid-template-columns:minmax(0,1fr);display:grid}@media (width>=880px){.profile-grid{gap:var(--space-7);grid-template-columns:minmax(0,1.65fr) minmax(250px,.85fr)}.profile-aside{padding-left:var(--space-6);border-left:1px solid var(--border)}}.profile-main{min-width:0}.profile-main>.profile-section+.profile-section{margin-top:var(--space-7);padding-top:var(--space-6);border-top:1px solid var(--border)}.profile-section{min-width:0;padding:var(--space-5);border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface)}.section-header{justify-content:space-between;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.section-title{align-items:center;gap:var(--space-2);font-size:1.38rem;display:flex}.section-count{border-radius:var(--radius-pill);background:var(--surface-raised);color:var(--text-muted);font-family:var(--font-body);letter-spacing:.02em;padding:1px 8px;font-size:.7rem;font-weight:600}.profession-group{margin-top:var(--space-6)}.profession-group+.profession-group{padding-top:var(--space-5);border-top:1px solid var(--border)}.profession-grid{gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(210px,1fr));margin:0;padding:0;list-style:none;display:grid}.profession-card{min-width:0;padding:var(--space-3) var(--space-4);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.profession-card-head{justify-content:space-between;align-items:baseline;gap:var(--space-2);display:flex}.profession-card-name{font-size:.94rem;font-weight:600}.profession-card-count{color:var(--text-faint);font-variant-numeric:tabular-nums;font-size:.74rem}.profession-card-people{color:var(--text-muted);overflow-wrap:anywhere;margin-top:4px;font-size:.8rem;line-height:1.45}.profile-aside .entry-body{flex-basis:100%}.profile-aside .entry-actions{width:100%;margin-left:0}.aside-section+.aside-section{margin-top:var(--space-6);padding-top:var(--space-5);border-top:1px solid var(--border)}.aside-title{margin-bottom:var(--space-3);color:var(--text-faint);font-family:var(--font-body);letter-spacing:.13em;text-transform:uppercase;font-size:.7rem;font-weight:700}.details{flex-direction:column;gap:10px;display:flex}.details-row{gap:var(--space-3);grid-template-columns:82px minmax(0,1fr);align-items:baseline;display:grid}.details dt{color:var(--text-faint);letter-spacing:.07em;text-transform:uppercase;font-size:.72rem;font-weight:600}.details dd{overflow-wrap:anywhere;margin:0;font-size:.92rem}.notes{color:var(--text-muted);overflow-wrap:anywhere;white-space:pre-wrap;font-size:.94rem;line-height:1.65}.meta{margin-top:var(--space-6);color:var(--text-faint);font-size:.74rem;line-height:1.7}.text-link{color:var(--accent);text-underline-offset:2px;text-decoration:underline;text-decoration-thickness:1px}.text-link:hover{color:var(--accent-hover)}.entry-list{margin:0;padding:0;list-style:none}.entry{justify-content:space-between;align-items:flex-start;gap:var(--space-2) var(--space-3);border-top:1px solid var(--border);flex-wrap:wrap;padding:14px 0;display:flex}.entry:last-child{border-bottom:1px solid var(--border)}.entry-editing{border-top:0;padding:0;display:block}.entry-editing:last-child{border-bottom:0}.entry-body{flex:240px;min-width:0}.entry-title{margin-bottom:2px;font-size:1rem;line-height:1.4}.entry-person{color:var(--text);overflow-wrap:anywhere;border-bottom:1px solid #0000;font-size:1rem;font-weight:500;text-decoration:none}.entry-person:hover{border-bottom-color:var(--accent);color:var(--accent-hover)}.entry-label{color:var(--text-muted);font-size:.94rem}.entry-meta{color:var(--text-muted);font-size:.8rem}.entry-note{color:var(--text-muted)}.entry-actions{flex-wrap:wrap;gap:2px;margin-left:auto;display:flex}.entry-actions .button{min-height:38px;padding:0 10px;font-size:.8rem}.choice-list{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);flex-direction:column;max-height:300px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.choice{align-items:center;gap:var(--space-3);width:100%;min-height:48px;color:var(--text);text-align:left;cursor:pointer;background:0 0;border:0;padding:8px 12px;display:flex}.choice:hover{background:var(--surface-raised)}.choice:focus-visible{outline:2px solid var(--focus-ring);outline-offset:-2px}.choice-selected{background:color-mix(in oklab, var(--accent) 18%, var(--surface))}.choice-main{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.choice-name{font-size:.92rem;font-weight:600}.choice-meta{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:.77rem;overflow:hidden}.choice-state{color:var(--accent-hover);letter-spacing:.08em;text-transform:uppercase;flex:none;font-size:.66rem;font-weight:700}.selected-chips{gap:var(--space-1);flex-direction:column;display:flex}.chip-row{gap:var(--space-1);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.choice-empty{align-items:flex-start;gap:var(--space-1);padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;display:flex}.dialog{border:1px solid var(--border-strong);border-radius:var(--radius-card);background:var(--surface);width:100%;max-width:min(460px,100vw - 32px);color:var(--text);margin:auto;padding:0}.dialog[open]{animation:dialog-in var(--duration) var(--ease-out)}.dialog:focus{outline:none}@keyframes dialog-in{0%{opacity:0;transform:translateY(6px)}}.dialog::backdrop{background:#0000009e}.dialog-inner{gap:var(--space-3);padding:var(--space-5);flex-direction:column;display:flex}.dialog-title{font-size:1.5rem;line-height:1.15}.dialog-body{gap:var(--space-3);color:var(--text-muted);flex-direction:column;font-size:.92rem;line-height:1.5;display:flex}.dialog-body strong{color:var(--text)}.dialog-actions{justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-3);flex-wrap:wrap;display:flex}.auth{grid-template-columns:minmax(0,1fr);min-height:100dvh;display:grid}@media (width>=900px){.auth{grid-template-columns:minmax(0,1.05fr) minmax(440px,.95fr)}}.auth-story{justify-content:space-between;gap:var(--space-6);background:var(--surface);border-bottom:1px solid var(--border);flex-direction:column;padding:clamp(24px,5vw,64px);display:flex;position:relative;overflow:hidden}.auth-grid{z-index:0;opacity:.65;pointer-events:none;width:100%;height:100%;position:absolute;inset:0;-webkit-mask-image:radial-gradient(at 28% 30%,#000 5%,#0000 62%);mask-image:radial-gradient(at 28% 30%,#000 5%,#0000 62%)}.auth-story>:not(.auth-grid){z-index:1;position:relative}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;position:absolute;overflow:hidden}@media (width>=900px){.auth-story{border-bottom:0;border-right:1px solid var(--border)}}.brand-auth{margin-bottom:var(--space-2)}.auth-title{max-width:15ch;margin-top:var(--space-3);letter-spacing:-.03em;font-size:clamp(2.15rem,1.6rem + 3.4vw,4rem);line-height:1.02}.auth-panel{justify-content:center;align-items:center;padding:clamp(24px,5vw,64px);display:flex}.auth-panel-inner{width:100%;max-width:400px}.auth-form-title{margin-bottom:var(--space-5);font-size:2rem}.auth-panel .form{gap:var(--space-4)}.auth-demo{align-items:flex-start;gap:var(--space-1);margin-top:var(--space-5);padding-top:var(--space-4);border-top:1px solid var(--border);flex-direction:column;display:flex}.auth-switch{margin-top:var(--space-4);color:var(--text-muted);font-size:.88rem}.auth-switch a{color:var(--accent);text-underline-offset:3px}.auth-demo-row{gap:var(--space-2);margin-top:var(--space-2);flex-wrap:wrap;display:flex}.chip-button{border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--surface-raised);min-height:40px;color:var(--text);font-family:var(--font-body);cursor:pointer;transition:border-color var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out);padding:8px 16px;font-size:.82rem;font-weight:500}.chip-button:hover{border-color:var(--accent);color:var(--accent)}.auth-story-body{min-height:0;margin-block:auto;position:relative}.auth-sigil{width:clamp(150px,16vw,220px);height:auto;color:var(--accent);opacity:.11;pointer-events:none;position:absolute;bottom:-34px;right:0}.auth-story-copy{z-index:1;position:relative}.auth-reveal{opacity:0;animation:auth-rise .56s var(--ease-out) forwards}.auth-reveal-1{animation-delay:40ms}.auth-reveal-2{animation-delay:.14s}.auth-reveal-3{animation-delay:.22s}@keyframes auth-rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.logo-draw path{stroke-dasharray:1;stroke-dashoffset:1px;animation:sigil-draw 1.4s var(--ease-out) forwards}.logo-draw path:nth-of-type(2){animation-delay:.5s}.logo-draw .logo-node{opacity:0;animation:sigil-node .42s var(--ease-out) .9s forwards}@keyframes sigil-draw{to{stroke-dashoffset:0}}@keyframes sigil-node{to{opacity:1}}@media (prefers-reduced-motion:reduce){.auth-reveal,.logo-draw path,.logo-draw .logo-node{opacity:1;animation:none}.logo-draw path{stroke-dasharray:none;stroke-dashoffset:0}}.auth-single{min-height:100dvh;padding:clamp(24px, 6vw, 64px) var(--space-5);grid-template-columns:minmax(0,1fr);place-items:center;display:grid}.auth-single .auth-panel{width:100%;max-width:460px;padding:0}.auth-request{align-items:stretch;gap:var(--space-3);flex-direction:column;display:flex}.auth-request .brand{margin:0}.auth-request-mark .logo{color:var(--accent)}.auth-request-eyebrow{margin:var(--space-2) 0 0}.auth-request .auth-form-title{margin-bottom:var(--space-2)}.auth-request-lede{margin-bottom:var(--space-2);color:var(--text-muted);font-size:.92rem;line-height:1.5}.auth-request .form{gap:var(--space-4)}.input-wrap{position:relative}.input-wrap .input{padding-right:84px}.input-trailing{inset-block:0;align-items:center;display:flex;position:absolute;right:6px}.input-toggle{border-radius:var(--radius-pill);min-height:36px;color:var(--text-muted);font-family:var(--font-body);letter-spacing:.04em;text-transform:uppercase;cursor:pointer;background:0 0;border:0;padding:0 10px;font-size:.78rem;font-weight:600}.input-toggle:hover{color:var(--accent)}.input-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:0}@media (width<=899px){.auth-story{gap:var(--space-3);padding:var(--space-5) var(--space-5) var(--space-4)}.auth-title{margin-top:var(--space-1);font-size:1.85rem}.auth-sigil{display:none}.auth-panel{padding:var(--space-6) var(--space-5)}}@media (width<=480px){.profile-identity{align-items:flex-start}.monogram-large{width:52px;height:52px;font-size:1.15rem}.details-row{grid-template-columns:74px minmax(0,1fr)}.entry-actions,.form-dirty{margin-left:0}.auth-story{padding-bottom:var(--space-5)}}.repeatable{gap:var(--space-3);flex-direction:column;display:flex}.repeatable-row{align-items:flex-end;gap:var(--space-3);flex-wrap:wrap;display:flex}.repeatable-row .field{flex:170px}.social-row .field:first-child{flex:0 160px}.repeatable-remove{flex:none;min-height:44px;margin-bottom:2px}@media (width<=559px){.repeatable-row .field,.social-row .field:first-child{flex:100%}}.admin-section{margin-top:var(--space-6)}.admin-stats{gap:var(--space-3);margin:var(--space-3) 0 0;grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.admin-stat{padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius-row);background:var(--surface)}.admin-stat dt{color:var(--text-muted);letter-spacing:.1em;text-transform:uppercase;font-size:.7rem;font-weight:600}.admin-stat dd{font-family:var(--font-display);margin:2px 0 0;font-size:1.7rem;line-height:1.1}.admin-list{gap:var(--space-2);margin:var(--space-3) 0 0;flex-direction:column;padding:0;list-style:none;display:flex}.admin-row{align-items:center;gap:var(--space-3);padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius-row);background:var(--surface);flex-wrap:wrap;display:flex}.admin-identity{flex:170px;min-width:0}.admin-name{font-weight:600;line-height:1.3}.admin-email{color:var(--text-muted);overflow-wrap:anywhere;font-size:.82rem}.admin-badges{gap:var(--space-2);flex-wrap:wrap;flex:none;display:flex}.badge{border:1px solid var(--border);border-radius:var(--radius-pill);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;padding:3px 10px;font-size:.68rem;font-weight:700}.badge-role-owner{border-color:var(--accent);color:var(--accent)}.badge-role-admin{border-color:color-mix(in oklab, var(--accent) 45%, var(--border));color:var(--text)}.badge-role-member{color:var(--text-muted)}.badge-status-active{border-color:color-mix(in oklab, var(--success) 35%, var(--border));color:var(--success)}.badge-status-pending{border-color:color-mix(in oklab, var(--warning) 45%, var(--border));color:var(--warning)}.badge-status-suspended{border-color:color-mix(in oklab, var(--danger) 45%, var(--border));color:var(--danger)}.admin-meta{color:var(--text-faint);flex:190px;margin:0;font-size:.78rem}.admin-actions{gap:var(--space-2);flex-wrap:wrap;flex:none;margin-left:auto;display:flex}.admin-actions .button{min-height:40px;padding:0 var(--space-3);font-size:.84rem}.admin-locked{color:var(--text-faint);margin-left:auto;font-size:.8rem}.admin-form{gap:var(--space-3);margin-top:var(--space-4);flex-direction:column;display:flex}.admin-form-grid{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(210px,1fr));display:grid}.panel-hint{color:var(--text-muted);font-size:.86rem}.settings-status{align-items:center;gap:var(--space-2);margin:var(--space-2) 0;color:var(--text-muted);flex-wrap:wrap;font-size:.9rem;display:flex}.qr-code{border-radius:var(--radius-row);background:#fff;width:240px;height:240px;padding:12px;display:block}@media (width<=420px){.qr-code{width:100%;max-width:240px;height:auto}}.settings-secret{flex-direction:column;gap:4px;margin:0;display:flex}.settings-secret code{padding:var(--space-2);border:1px solid var(--border);border-radius:var(--radius-row);background:var(--surface);overflow-wrap:anywhere;font-size:.8rem}.recovery-codes{gap:var(--space-2);margin:var(--space-3) 0;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));padding:0;list-style:none;display:grid}.recovery-codes code{border:1px solid var(--border);border-radius:var(--radius-row);background:var(--surface);letter-spacing:.02em;padding:6px 10px;font-size:.82rem;display:block}.access-panel{margin:var(--space-2) 0 0;padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-raised);flex-basis:100%}.access-grid{gap:var(--space-2);max-height:280px;margin:var(--space-3) 0;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));padding:2px;display:grid;overflow:auto}.checkbox{align-items:center;gap:var(--space-2);cursor:pointer;min-height:36px;font-size:.88rem;display:flex}.checkbox input{width:18px;height:18px;accent-color:var(--accent);flex:none}@media (width<=719px){.admin-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-actions{flex-basis:100%;margin-left:0}.admin-locked{margin-left:0}}@media (width<=1099px) and (width>=960px){.nav-label{font-size:.64rem}}.graph-view-toggle{flex:none;width:190px}.graph-toolbar{justify-content:space-between;align-items:flex-end;gap:var(--space-3);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.graph-filter{flex:0 260px}.graph-count{color:var(--text-muted);font-size:.84rem}.graph-layout{gap:var(--space-4);grid-template-columns:minmax(0,1fr);display:grid}@media (width>=1080px){.graph-layout{grid-template-columns:minmax(0,1fr) 300px;align-items:start}}.graph-canvas{-webkit-user-select:none;user-select:none;border:1px solid var(--border);border-radius:var(--radius-lg);background:radial-gradient(ellipse at 38% 30%, color-mix(in oklab, var(--accent) 8%, transparent), transparent 62%), radial-gradient(ellipse at 72% 74%, color-mix(in oklab, var(--text-muted) 7%, transparent), transparent 60%), var(--surface);position:relative;overflow:hidden}.graph-canvas:before{content:"";pointer-events:none;background-image:linear-gradient(to right, color-mix(in oklab, var(--border) 90%, transparent) 1px, transparent 1px), linear-gradient(to bottom, color-mix(in oklab, var(--border) 90%, transparent) 1px, transparent 1px);opacity:.6;background-size:32px 32px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(at 50% 45%,#000 15%,#0000 85%);mask-image:radial-gradient(at 50% 45%,#000 15%,#0000 85%)}.graph-svg{cursor:grab;touch-action:none;width:100%;height:clamp(380px,62vh,660px);display:block;position:relative}@media (width<=700px){.graph-svg{height:320px}}.graph-svg:active{cursor:grabbing}.graph-space{pointer-events:none}.graph-star{fill:var(--text-muted)}.graph-stars-far{animation:190s ease-in-out infinite graph-parallax-far}.graph-stars-near{animation:130s ease-in-out infinite graph-parallax-near}.graph-nebula-a{animation:72s ease-in-out infinite graph-drift-a,43s ease-in-out infinite graph-breathe}.graph-nebula-b{animation:104s ease-in-out infinite graph-drift-b,61s ease-in-out infinite reverse graph-breathe}.graph-nebula-c{animation:136s ease-in-out infinite graph-drift-c,79s ease-in-out infinite graph-breathe}@keyframes graph-drift-a{0%,to{transform:translate(0)scale(1)}50%{transform:translate(48px,-30px)scale(1.06)}}@keyframes graph-drift-b{0%,to{transform:translate(0)scale(1.04)}50%{transform:translate(-38px,24px)scale(1)}}@keyframes graph-drift-c{0%,to{transform:translate(0)scale(1)}50%{transform:translate(26px,34px)scale(1.05)}}@keyframes graph-parallax-far{0%,to{transform:translate(0)}50%{transform:translate(18px,-12px)}}@keyframes graph-parallax-near{0%,to{transform:translate(0)}50%{transform:translate(-30px,18px)}}@keyframes graph-breathe{0%,to{opacity:.7}50%{opacity:1}}@media (prefers-reduced-motion:reduce){.graph-stars-far,.graph-stars-near,.graph-nebula-a,.graph-nebula-b,.graph-nebula-c{animation:none}}.graph-legend{bottom:var(--space-3);left:var(--space-3);gap:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--surface);color:var(--text-faint);pointer-events:none;margin:0;padding:4px 10px;font-size:.72rem;display:flex;position:absolute}.graph-legend span{align-items:center;gap:6px;display:inline-flex}.graph-legend-line{border-top:1.5px solid color-mix(in oklab, var(--text-muted) 55%, var(--border));width:26px}.graph-legend-line.is-inferred{border-top-style:dashed}.graph-edge{fill:none;stroke:color-mix(in oklab, var(--text-muted) 55%, var(--border));stroke-linecap:round;transition:stroke var(--duration-fast) var(--ease-out)}.graph-edge-active{stroke:var(--accent);stroke-width:2px}.graph-edge-inferred{stroke-dasharray:5 4}.graph-beam{fill:none;stroke-linecap:round;pointer-events:none}.graph-edge-label{fill:var(--text-muted);letter-spacing:.01em;paint-order:stroke;stroke:var(--surface);stroke-width:7px;stroke-linejoin:round;pointer-events:none;font-size:17px;font-weight:600}@media (prefers-reduced-motion:reduce){.graph-beam{display:none}}.graph-inferred{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-faint);letter-spacing:.04em;text-transform:uppercase;padding:0 5px;font-size:.68rem}.graph-edge-dim{opacity:.3}.graph-arrow-head{fill:color-mix(in oklab, var(--text-muted) 55%, var(--border))}.graph-node{cursor:pointer}.graph-node circle:not(.graph-node-halo):not(.graph-node-photo-ring){fill:var(--surface-raised);stroke:var(--border-strong);stroke-width:1.5px;transition:stroke var(--duration-fast) var(--ease-out), fill var(--duration-fast) var(--ease-out)}.graph-node .graph-node-halo{fill:none;stroke:var(--text-faint);stroke-width:1px;opacity:0;transition:opacity var(--duration-fast) var(--ease-out), stroke var(--duration-fast) var(--ease-out)}.graph-node .graph-node-photo-ring{fill:none;stroke:var(--border-strong);stroke-width:1.5px;transition:stroke var(--duration-fast) var(--ease-out)}.graph-node:hover circle:not(.graph-node-halo):not(.graph-node-photo-ring){fill:var(--surface-high);stroke:var(--accent)}.graph-node:hover .graph-node-photo-ring{stroke:var(--accent)}.graph-node:hover .graph-node-halo{opacity:.85}.graph-node:focus{outline:none}.graph-node:focus-visible circle:not(.graph-node-halo):not(.graph-node-photo-ring){stroke:var(--accent);stroke-width:2.5px}.graph-node:focus-visible .graph-node-halo,.graph-node-selected .graph-node-halo{opacity:1;stroke:var(--accent)}.graph-node-selected circle:not(.graph-node-halo):not(.graph-node-photo-ring){fill:var(--accent-container);stroke:var(--accent);stroke-width:2.5px}.graph-node-selected .graph-node-photo-ring{stroke:var(--accent);stroke-width:3px}.graph-node-initials{fill:var(--text);font-family:var(--font-body);letter-spacing:.06em;pointer-events:none;font-size:12px;font-weight:600}.graph-node-name{fill:var(--text-muted);font-family:var(--font-body);paint-order:stroke;stroke:var(--surface);stroke-width:3px;stroke-linejoin:round;pointer-events:none;opacity:var(--label-opacity,1);transition:opacity var(--duration-fast) var(--ease-out);font-size:14px;font-weight:500}.graph-node:hover .graph-node-name,.graph-node:focus-visible .graph-node-name,.graph-node-selected .graph-node-name{opacity:1;fill:var(--text)}.graph-zoom{top:var(--space-3);right:var(--space-3);gap:4px;display:flex;position:absolute}.graph-zoom-button{border:1px solid var(--border-strong);border-radius:var(--radius-control);background:var(--surface-raised);min-width:36px;min-height:36px;color:var(--text);font-family:var(--font-body);cursor:pointer;padding:0 8px;font-size:1rem}.graph-zoom-button:hover{border-color:var(--accent);color:var(--accent)}.graph-zoom-reset{padding:0 12px;font-size:.78rem}.graph-panel{padding:var(--space-5);border:1px solid var(--border);border-radius:var(--radius-lg);background:radial-gradient(ellipse at 38% 30%, color-mix(in oklab, var(--accent) 8%, transparent), transparent 62%), radial-gradient(ellipse at 72% 74%, color-mix(in oklab, var(--text-muted) 7%, transparent), transparent 60%), var(--surface)}.graph-panel-person{align-items:center;gap:var(--space-3);margin-top:var(--space-1);display:flex}.graph-panel-name{font-size:1.35rem;line-height:1.2}.graph-panel-meta{color:var(--text-muted);margin-top:2px;font-size:.86rem}.graph-panel-subtitle{margin:var(--space-4) 0 var(--space-2);color:var(--text-muted);letter-spacing:.1em;text-transform:uppercase;font-size:.7rem;font-weight:700}.graph-panel-empty{color:var(--text-muted);font-size:.9rem;line-height:1.5}.graph-connections{gap:var(--space-2);margin:0 0 var(--space-4);flex-direction:column;padding:0;list-style:none;display:flex}.graph-connections li{column-gap:var(--space-3);padding-top:var(--space-2);border-top:1px solid var(--border);grid-template-columns:auto minmax(0,1fr);align-items:center;row-gap:1px;display:grid}.graph-connections li>.monogram{grid-area:1/1/span 4}.graph-connections li>:not(.monogram){grid-column:2}.graph-connection-label{color:var(--text-faint);font-size:.78rem}.graph-list{gap:var(--space-5);grid-template-columns:minmax(0,1fr);display:grid}@media (width>=900px){.graph-list{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);align-items:start}}.graph-list-people,.graph-list-edges{gap:var(--space-2);margin:var(--space-3) 0 0;flex-direction:column;padding:0;list-style:none;display:flex}.graph-list-people li,.graph-list-edges li{align-items:center;gap:var(--space-2);border-top:1px solid var(--border);flex-wrap:wrap;padding:8px 0;display:flex}.graph-list a{color:var(--text);text-decoration:underline;-webkit-text-decoration-color:var(--border-strong);text-decoration-color:var(--border-strong);text-underline-offset:3px;text-decoration-thickness:1px}.graph-list a:hover{color:var(--accent-hover);-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}.graph-list-label{color:var(--text-muted);font-size:.85rem}.graph-list-meta{color:var(--text-faint);font-size:.75rem}.bottom-nav-wrap{z-index:30;padding:6px 8px calc(6px + env(safe-area-inset-bottom));border-top:1px solid var(--border);background:var(--surface);position:fixed;inset:auto 0 0}.bottom-nav .nav-list{justify-content:space-around;gap:var(--space-1);flex-direction:row}.bottom-nav .nav-link{flex:1 1 0;max-width:96px;min-height:56px;font-size:.68rem}@media (width<=430px){.bottom-nav .nav-link{padding-inline:2px;font-size:.6rem}}@media (width>=960px){.bottom-nav-wrap{display:none}}
