@font-face{font-family:Ivy Mode;font-style:normal;font-weight:300 600;font-display:swap;src:url(/fonts/IvyMode.ttf) format("truetype")}@font-face{font-family:Ivy Mode;font-style:italic;font-weight:300 600;font-display:swap;src:url(/fonts/IvyMode.ttf) format("truetype")}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:200 800;font-display:swap;src:url(/fonts/PlusJakartaSans-Variable.ttf) format("truetype")}@font-face{font-family:Plus Jakarta Sans;font-style:italic;font-weight:200 800;font-display:swap;src:url(/fonts/PlusJakartaSans-Italic-Variable.ttf) format("truetype")}@font-face{font-family:Lato;font-style:normal;font-weight:300;font-display:swap;src:url(/fonts/Lato-Light.ttf) format("truetype")}@font-face{font-family:Lato;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/Lato-Regular.ttf) format("truetype")}@font-face{font-family:Lato;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/Lato-Bold.ttf) format("truetype")}:root{--pan-purple-deep:#2F1328;--pan-purple-mid:#5E3456;--pan-gold:#CD9C7F;--pan-aqua:#36B6C3;--pan-purple-900:#1F0C1A;--pan-purple-800:#2F1328;--pan-purple-700:#45203C;--pan-purple-600:#5E3456;--pan-purple-500:#774C6C;--pan-purple-300:#A98AA1;--pan-purple-100:#E7DCE4;--pan-aubergine:#49253E;--pan-gold-700:#A9785C;--pan-gold-800:#8A5F45;--pan-gold-600:#BC8A6D;--pan-gold-500:#CD9C7F;--pan-gold-400:#DBB69E;--pan-gold-200:#EFDDD0;--pan-aqua-700:#1E7B85;--pan-aqua-600:#2A9AA5;--pan-aqua-500:#36B6C3;--pan-aqua-400:#6BCBD4;--pan-aqua-200:#C2E9ED;--pan-ivory:#F7F2EE;--pan-cream:#FBF8F5;--pan-stone-200:#E8DFD8;--pan-stone-400:#BCAFA6;--pan-stone-600:#6E6169;--pan-ink:#2B2330;--pan-white:#FFFFFF;--pan-black:#1A0E16;--pan-positive:#5B8C6E;--pan-caution:#C7A24B;--pan-critical:#A6505A;--surface-base:var(--pan-purple-900);--surface-raised:var(--pan-purple-800);--surface-panel:var(--pan-purple-700);--surface-overlay:var(--pan-purple-600);--surface-card:var(--pan-purple-800);--text-display:var(--pan-gold-500);--text-heading:var(--pan-cream);--text-body:#E7DCE4;--text-muted:var(--pan-purple-300);--text-on-accent:var(--pan-purple-900);--accent-primary:var(--pan-gold-500);--accent-secondary:var(--pan-aqua-500);--border-subtle:rgba(231,220,228,0.12);--border-strong:rgba(231,220,228,0.24);--border-gold:rgba(205,156,127,0.55);--focus-ring:var(--pan-aqua-400);--halo-glow:rgba(205,156,127,0.45)}.pan-theme-light,[data-theme=light]{--surface-base:var(--pan-ivory);--surface-raised:var(--pan-cream);--surface-panel:var(--pan-white);--surface-overlay:var(--pan-white);--surface-card:var(--pan-white);--text-display:var(--pan-purple-800);--text-heading:var(--pan-purple-800);--text-body:var(--pan-ink);--text-muted:var(--pan-stone-600);--text-on-accent:var(--pan-white);--accent-primary:var(--pan-gold-700);--accent-secondary:var(--pan-aqua-700);--border-subtle:rgba(43,35,48,0.10);--border-strong:rgba(43,35,48,0.18);--border-gold:rgba(169,120,92,0.55);--focus-ring:var(--pan-aqua-700);--halo-glow:rgba(205,156,127,0.30)}:root{--font-display:"Ivy Mode",serif;--font-body:"Plus Jakarta Sans",sans-serif;--font-utility:"Lato",sans-serif;--fw-display:400;--fw-display-light:300;--fw-body:300;--fw-body-regular:400;--fw-body-medium:500;--fw-body-bold:700;--fs-display-1:76px;--lh-display-1:1.02;--fs-display-2:56px;--lh-display-2:1.06;--fs-h1:40px;--lh-h1:1.12;--fs-h2:30px;--lh-h2:1.18;--fs-h3:23px;--lh-h3:1.28;--fs-lead:20px;--lh-lead:1.55;--fs-body:16px;--lh-body:1.65;--fs-small:14px;--lh-small:1.6;--fs-caption:12.5px;--lh-caption:1.5;--fs-overline:11px;--lh-overline:1.4;--tracking-display:0.01em;--tracking-body:0em;--tracking-overline:0.22em;--tracking-button:0.04em;--text-display-family:var(--font-display);--text-body-family:var(--font-body);--text-figure-family:var(--font-utility);--space-0:0;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:64px;--space-9:96px;--space-10:128px;--gutter-page:clamp(24px,6vw,120px);--section-rhythm:clamp(64px,9vw,144px);--radius-xs:4px;--radius-sm:8px;--radius-md:14px;--radius-lg:22px;--radius-xl:32px;--radius-pill:999px;--radius-card:18px;--border-hairline:1px;--border-regular:1.5px;--shadow-xs:0 1px 2px rgba(31,12,26,0.12);--shadow-sm:0 4px 14px rgba(31,12,26,0.16);--shadow-md:0 12px 32px rgba(31,12,26,0.22);--shadow-lg:0 28px 64px rgba(31,12,26,0.30);--shadow-halo:0 0 48px rgba(205,156,127,0.28);--ease-standard:cubic-bezier(0.22,0.61,0.36,1);--ease-entrance:cubic-bezier(0.16,1,0.3,1);--dur-fast:140ms;--dur-base:240ms;--dur-slow:420ms;--dur-stately:720ms;--maxw-prose:68ch;--maxw-content:1120px;--maxw-wide:1360px}*,:after,:before{box-sizing:border-box}body{margin:0;background:var(--surface-base);color:var(--text-body);font-family:var(--font-body);font-weight:var(--fw-body-regular);font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}::selection{background:var(--pan-gold-500);color:var(--pan-purple-900)}h1,h2,h3{margin:0;color:var(--text-heading)}h1{font-family:var(--font-display);font-weight:400;font-size:40px;line-height:1.15;letter-spacing:var(--tracking-display)}p{margin:0 0 .75em}.muted{color:var(--text-muted)}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 20px;border-radius:var(--radius-pill);border:1px solid var(--pan-gold-500);background:var(--pan-gold-500);color:var(--pan-purple-900);font:inherit;font-weight:600;cursor:pointer}.btn:hover{background:var(--pan-gold-400)}.btn.secondary{background:transparent;color:var(--pan-ivory);border-color:rgba(231,220,228,.35)}.btn.secondary:hover{background:rgba(231,220,228,.1)}.app{min-height:100vh;display:flex;flex-direction:column}.app-header{gap:28px;padding:0 32px;min-height:64px;background:var(--pan-purple-deep);color:var(--pan-ivory)}.app-header,.brand{display:flex;align-items:center}.brand{gap:12px}.brand img{width:40px;height:auto;display:block}.brand span{font-family:var(--font-display);font-size:26px;color:var(--pan-gold-500);line-height:1}.app-nav{display:flex;gap:4px;flex:1 1}.app-nav a{padding:10px 14px;border-radius:var(--radius-sm);color:var(--pan-purple-100);min-height:44px;display:inline-flex;align-items:center}.app-nav a:hover{background:rgba(231,220,228,.1)}.app-user{display:flex;align-items:center;gap:16px;font-size:14px}.app-user .btn{min-height:36px;padding:0 14px;font-size:14px}.app-main{flex:1 1;padding:48px 32px 64px;max-width:1280px;width:100%;margin:0 auto}.app-footer{background:var(--pan-purple-deep);padding:14px 32px}.ask{display:block;max-width:720px;margin:0 auto}.ask input{width:100%;min-height:44px;padding:0 20px;border-radius:var(--radius-pill);border:1px solid rgba(231,220,228,.3);background:rgba(231,220,228,.08);color:var(--pan-ivory);font:inherit}.ask input::placeholder{color:var(--pan-purple-300)}.families{list-style:none;margin:32px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:12px 56px}.families a{font-family:var(--font-display);font-size:64px;line-height:1.15;color:var(--text-display);display:inline-block;padding:4px 0}.families a:hover{color:var(--pan-gold-700)}.graph-dump{margin-top:32px;padding:16px;background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);overflow:auto;font-size:12px}.signin{min-height:100vh;background:radial-gradient(ellipse at 20% 0,#45203C 0,var(--pan-purple-deep) 55%,#1F0C1A 100%);color:var(--pan-ivory);display:grid;place-items:center;padding:24px}.signin .panel{width:100%;max-width:440px}.signin img.mark{width:84px;height:auto;margin-bottom:20px}.signin h1{color:var(--pan-gold-500);font-size:48px;margin-bottom:8px}.signin p{color:var(--pan-purple-100)}.signin .people{display:grid;grid-gap:8px;gap:8px;margin-top:12px}.signin h2{color:var(--pan-gold-400);font-size:15px;margin:28px 0 0}.flash.error{padding:12px 16px;border-radius:var(--radius-sm);background:rgba(166,80,90,.2);border:1px solid var(--pan-critical);margin-bottom:16px}@media (max-width:700px){.app-header{padding:8px 16px;flex-wrap:wrap;gap:8px 16px}.app-user .who{display:none}.app-main{padding:32px 16px 48px}.app-footer{padding:12px 16px}.families a{font-size:44px}}