.psource-landing{--paper:#f7f4ec;--paper-2:#fbf9f3;--card:#fff;--ink:#1d2530;--ink-2:#586173;--ink-3:#8a9099;--line:#e4decb;--line-2:#eee9dc;--ochre:#b8801c;--ochre-soft:#f1e4c8;--sage:#3f6b57;--sage-soft:#e4ede7;--teal:#2c6e75;--teal-soft:#e1ecec;--danger:#9e3b32;--shadow:0 1px 2px rgba(29,37,48,.04),0 8px 24px rgba(29,37,48,.06);--shadow-lg:0 2px 4px rgba(29,37,48,.05),0 18px 48px rgba(29,37,48,.1);--radius:14px;--radius-sm:9px;--maxw:1120px;background:var(--paper);color:var(--ink);font-family:Inter,system-ui,sans-serif;font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased}.psource-landing,.psource-landing *,.psource-landing :after,.psource-landing :before{box-sizing:border-box}.psource-landing a{color:inherit;text-decoration:none}.psource-landing h1,.psource-landing h2,.psource-landing h3{font-family:Fraunces,Georgia,serif;font-weight:600;line-height:1.08;letter-spacing:-.01em;color:var(--ink)}.psource-landing .mono{font-family:DM Mono,monospace}.psource-landing .wrap{max-width:var(--maxw);margin:0 auto;padding:0 28px}.psource-landing #directory,.psource-landing #factories,.psource-landing #how,.psource-landing #trust{scroll-margin-top:88px}.psource-landing header.nav{position:sticky;top:0;z-index:40;background:hsla(44,41%,95%,.94);backdrop-filter:saturate(140%) blur(10px);border-bottom:1px solid var(--line)}.psource-landing .nav-in{max-width:var(--maxw);margin:0 auto;padding:14px 28px;display:flex;align-items:center;gap:22px}.psource-landing .brand{display:flex;align-items:center;gap:10px;font-family:Fraunces,serif;font-weight:600;font-size:19px;letter-spacing:-.01em}.psource-landing .brand .dot{width:11px;height:11px;border-radius:3px;background:var(--ochre);display:inline-block;transform:rotate(45deg)}.psource-landing .brand small{font-family:Inter,sans-serif;font-weight:500;font-size:12px;color:var(--ink-2);letter-spacing:.02em;margin-left:2px}.psource-landing .nav-links{margin-left:auto;display:flex;align-items:center;gap:26px}.psource-landing .nav-links a{font-size:14.5px;color:var(--ink-2);font-weight:500}.psource-landing .nav-links a:hover{color:var(--ink)}.psource-landing .btn{display:inline-flex;align-items:center;gap:8px;font-weight:600;font-size:14.5px;padding:10px 18px;border-radius:999px;border:1px solid transparent;cursor:pointer;background:none;font-family:inherit;transition:transform .15s ease,background .15s ease,border-color .15s ease}.psource-landing .btn-primary{background:var(--ink);color:#fff}.psource-landing .btn-primary:hover{transform:translateY(-1px);background:#0f151d}.psource-landing .btn-ghost{background:transparent;border-color:var(--line);color:var(--ink)}.psource-landing .btn-ghost:hover{border-color:var(--ochre);color:var(--ink)}@media (max-width:720px){.psource-landing .nav-links a:not(.btn){display:none}}.psource-landing .hero{padding:120px 0 30px}.psource-landing .eyebrow{font-size:12.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--ochre);margin-bottom:20px}.psource-landing .hero h1{font-size:clamp(36px,5.4vw,60px);max-width:16ch}.psource-landing .hero .lede{margin-top:22px;font-size:clamp(17px,2vw,20px);line-height:1.5;color:var(--ink-2);max-width:60ch}.psource-landing .hero .lede b{color:var(--ink);font-weight:600}.psource-landing .hero-cta{margin-top:32px;display:flex;flex-wrap:wrap;gap:14px;align-items:center}.psource-landing .free-note{font-size:13.5px;color:var(--ink-3);display:flex;align-items:center;gap:7px}.psource-landing .free-note svg{width:15px;height:15px;flex:none}.psource-landing .trust-strip{margin-top:44px;padding-top:26px;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:32px 18px;align-items:baseline}.psource-landing .trust-strip .ts-lead{font-size:13px;color:var(--ink-3);letter-spacing:.02em;text-transform:uppercase;font-weight:600}.psource-landing .ts-item{display:flex;flex-direction:column;gap:2px}.psource-landing .ts-item .n{font-family:Fraunces,serif;font-size:24px;font-weight:600;color:var(--ink)}.psource-landing .ts-item .l{font-size:13px;color:var(--ink-2)}.psource-landing section.blk{padding:64px 0}.psource-landing .sec-head{max-width:60ch;margin-bottom:38px}.psource-landing .sec-head .eyebrow{margin-bottom:14px}.psource-landing .sec-head h2{font-size:clamp(26px,3.4vw,36px)}.psource-landing .sec-head p{margin-top:14px;color:var(--ink-2);font-size:17px;line-height:1.55}.psource-landing .steps{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}@media (max-width:820px){.psource-landing .steps{grid-template-columns:1fr}}.psource-landing .step{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:26px 24px 28px;box-shadow:var(--shadow)}.psource-landing .step .k{font-family:DM Mono,monospace;font-size:13px;color:var(--ochre);font-weight:500;letter-spacing:.04em}.psource-landing .step h3{font-size:19px;margin:12px 0 8px}.psource-landing .step p{font-size:14.5px;color:var(--ink-2);line-height:1.5}.psource-landing .dir-shell{background:var(--paper-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.psource-landing .dir-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:24px}.psource-landing .dir-head h2{font-size:clamp(24px,3vw,32px)}.psource-landing .dir-head p{color:var(--ink-2);font-size:15.5px;margin-top:8px;max-width:52ch}.psource-landing .ranknote{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--teal);background:var(--teal-soft);border:1px solid #cfe0e0;padding:7px 13px;border-radius:999px;font-weight:600;flex:none}.psource-landing .ranknote svg{width:14px;height:14px}.psource-landing .filters{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:22px}.psource-landing .chip{font-size:13.5px;font-weight:500;color:var(--ink-2);background:var(--card);border:1px solid var(--line);border-radius:999px;padding:8px 15px;cursor:pointer;font-family:inherit;transition:border-color .15s,color .15s}.psource-landing .chip:hover{border-color:var(--ochre);color:var(--ink)}.psource-landing .chip.active{background:var(--ink);color:#fff;border-color:var(--ink)}.psource-landing .grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.psource-landing .dir-empty{padding:48px 0;text-align:center;color:var(--ink-3,#6b6b6b);font-size:15px}@media (max-width:900px){.psource-landing .grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:620px){.psource-landing .grid{grid-template-columns:1fr}}.psource-landing .scard{display:block;text-decoration:none;color:inherit;cursor:pointer;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:20px;display:flex;flex-direction:column;gap:14px;box-shadow:var(--shadow);transition:transform .16s ease,box-shadow .16s ease}.psource-landing .scard:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg)}.psource-landing .scard .top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.psource-landing .scard .co{font-family:Fraunces,serif;font-size:18px;font-weight:600;line-height:1.15}.psource-landing .scard .loc{font-size:13px;color:var(--ink-3);margin-top:3px;display:flex;align-items:center;gap:5px}.psource-landing .scard .loc svg{width:12px;height:12px;flex:none}.psource-landing .fit{text-align:right;flex:none}.psource-landing .fit .num{font-family:Fraunces,serif;font-size:30px;font-weight:600;color:var(--sage);line-height:1}.psource-landing .fit .lab{font-size:11px;color:var(--ink-3);letter-spacing:.04em;text-transform:uppercase}.psource-landing .metarow{display:flex;flex-wrap:wrap;gap:8px 14px;font-size:12.5px;color:var(--ink-2)}.psource-landing .metarow span b{color:var(--ink);font-weight:600}.psource-landing .tagrow{display:flex;flex-wrap:wrap;gap:7px;margin-top:2px}.psource-landing .tag{font-size:11px;font-weight:600;padding:4px 9px;border-radius:999px;letter-spacing:.01em;display:inline-flex;align-items:center;gap:5px}.psource-landing .tag.grade-s0{background:#efede6;color:#6c6658}.psource-landing .tag.grade-s1{background:var(--teal-soft);color:var(--teal)}.psource-landing .tag.grade-s2{background:var(--sage-soft);color:var(--sage)}.psource-landing .flag.darpan{background:var(--teal-soft);color:var(--teal)}.psource-landing .flag.member{background:var(--sage-soft);color:var(--sage)}.psource-landing .flag.spon{background:#efede6;color:#7c7668}.psource-landing .dir-foot{margin-top:30px;text-align:center}.psource-landing .dir-foot p{color:var(--ink-3);font-size:13.5px;margin-top:12px}.psource-landing .ladder{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}@media (max-width:820px){.psource-landing .ladder{grid-template-columns:repeat(2,1fr)}}@media (max-width:460px){.psource-landing .ladder{grid-template-columns:1fr}}.psource-landing .rung{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-sm);padding:22px 20px;box-shadow:var(--shadow)}.psource-landing .rung .badge{display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:600;padding:5px 11px;border-radius:999px;margin-bottom:14px}.psource-landing .rung h3{font-size:16px;margin-bottom:6px}.psource-landing .rung p{font-size:13.5px;color:var(--ink-2);line-height:1.5}.psource-landing .b-self{background:#efede6;color:#6c6658}.psource-landing .b-doc{background:var(--teal-soft);color:var(--teal)}.psource-landing .b-full{background:var(--sage-soft);color:var(--sage)}.psource-landing .dot{width:9px;height:9px;border-radius:50%;flex:none;display:inline-block}.psource-landing .dot.full{background:var(--sage)}.psource-landing .dot.half{background:var(--teal);position:relative;overflow:hidden}.psource-landing .dot.half:after{content:"";position:absolute;inset:0 0 0 50%;background:var(--paper-2)}.psource-landing .dot.empty{background:transparent;border:1.5px solid var(--ink-3)}.psource-landing .rails{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:8px}@media (max-width:720px){.psource-landing .rails{grid-template-columns:1fr}}.psource-landing .rail{background:var(--paper-2);border:1px solid var(--line);border-radius:var(--radius-sm);padding:22px}.psource-landing .rail h3{font-size:16.5px;margin-bottom:8px;display:flex;align-items:center;gap:9px}.psource-landing .rail p{font-size:14px;color:var(--ink-2);line-height:1.5}.psource-landing .rail .ic{width:30px;height:30px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;flex:none}.psource-landing .rail .ic svg{width:17px;height:17px}.psource-landing .split{display:grid;grid-template-columns:1.1fr 1fr;gap:40px;align-items:center}@media (max-width:820px){.psource-landing .split{grid-template-columns:1fr;gap:28px}}.psource-landing .fac-card{background:var(--ink);color:#fff;border-radius:var(--radius);padding:34px 32px;box-shadow:var(--shadow-lg)}.psource-landing .fac-card .eyebrow{color:#e9c877}.psource-landing .fac-card h2{color:#fff;font-size:26px;margin-bottom:14px}.psource-landing .fac-card p{color:#c9cfd9;font-size:15px;line-height:1.55;margin-bottom:20px}.psource-landing .fac-list{list-style:none;display:flex;flex-direction:column;gap:12px;margin-bottom:24px;padding:0}.psource-landing .fac-list li{display:flex;gap:11px;align-items:flex-start;font-size:14.5px;color:#dde1e7}.psource-landing .fac-list li svg{width:17px;height:17px;flex:none;margin-top:2px;color:#8fbea6}.psource-landing .fac-card .btn-primary{background:#e9c877;color:#1d2530}.psource-landing .fac-card .btn-primary:hover{background:#f0d391}.psource-landing .cta-final{text-align:center;padding:72px 0 40px}.psource-landing .cta-final h2{font-size:clamp(28px,4vw,42px);max-width:18ch;margin:0 auto}.psource-landing .cta-final p{color:var(--ink-2);font-size:17.5px;margin:18px auto 30px;max-width:52ch}.psource-landing footer.ft{border-top:1px solid var(--line);padding:40px 0 48px;color:var(--ink-2)}.psource-landing .ft-in{display:flex;flex-wrap:wrap;justify-content:space-between;gap:24px;align-items:flex-start}.psource-landing .ft-brand{max-width:34ch}.psource-landing .ft-brand p{font-size:13.5px;color:var(--ink-3);margin-top:10px;line-height:1.5}.psource-landing .ft-cols{display:flex;gap:56px;flex-wrap:wrap}.psource-landing .ft-col h4{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);margin-bottom:12px;font-weight:600;font-family:Inter,sans-serif}.psource-landing .ft-col a{display:block;font-size:14px;color:var(--ink-2);margin-bottom:9px}.psource-landing .ft-col a:hover{color:var(--ink)}.psource-landing .ft-legal{margin-top:32px;padding-top:20px;border-top:1px solid var(--line-2);font-size:12.5px;color:var(--ink-3);display:flex;flex-wrap:wrap;gap:8px 20px;justify-content:space-between}.psource-landing .reveal{opacity:0;transform:translateY(14px);transition:opacity .6s ease,transform .6s ease}.psource-landing .reveal.in{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){.psource-landing .reveal{opacity:1;transform:none;transition:none}}.psource-landing .flag.spot{background:var(--teal-soft);color:var(--teal);font-weight:600}.psource-landing .sup-sec{padding:48px 0 64px}.psource-landing .sup-lede{color:var(--ink-2);margin:8px 0 22px;max-width:60ch}.psource-landing .sform{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:18px;margin-bottom:22px}.psource-landing .sform label{display:flex;flex-direction:column;gap:4px;font-size:12.5px;font-weight:600;color:var(--ink-2)}.psource-landing .sform input,.psource-landing .sform select{font:inherit;font-size:14px;font-weight:400;padding:8px 10px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--paper-2);color:var(--ink)}.psource-landing .sform .go{align-self:end}.psource-landing .sup-count{font-size:13px;color:var(--ink-3);margin-bottom:12px}.psource-landing .sup-badge{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--line);border-radius:var(--radius-sm);padding:12px 14px;margin-bottom:22px;font-size:14px;background:var(--sage-soft)}.psource-landing .sup-badge.public{background:#efede6;border-style:dashed}.psource-landing .sup-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}.psource-landing .sup-did{font-size:12.5px;color:var(--ink-3);word-break:break-all}.psource-landing .sup-table{width:100%;border-collapse:collapse;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;margin:18px 0;font-size:14.5px}.psource-landing .sup-table td,.psource-landing .sup-table th{text-align:left;padding:11px 14px;border-bottom:1px solid var(--line-2);vertical-align:top}.psource-landing .sup-table th{font-size:12px;color:var(--ink-3);font-weight:600;text-transform:uppercase;letter-spacing:.04em}.psource-landing .sup-table .withheld{color:var(--ink-3)}.psource-landing .sup-pager{display:flex;gap:10px;margin-top:22px}@media (max-width:900px){.psource-landing .sform{grid-template-columns:repeat(2,1fr)}}@media (max-width:620px){.psource-landing .sform{grid-template-columns:1fr}}.psource-landing .sup-sec h2{font-size:20px;margin:26px 0 0}.psource-landing .sup-badge.revoked{background:#f6e3e0;border-color:var(--danger);color:var(--danger)}.psource-landing .pp-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px;margin-top:22px}.psource-landing .pp-card h3{font-size:17px;margin-bottom:6px}.psource-landing .pp-playground{border-color:var(--teal);background:var(--teal-soft)}.psource-landing .pp-playground ol{margin:10px 0 14px 20px}.psource-landing .pp-actions{display:flex;flex-wrap:wrap;gap:10px}.psource-landing .sup-src{font-size:12.5px;color:var(--ink-3)}.psource-landing .sup-attr{color:var(--ink-3)}.psource-landing .sform.removal{grid-template-columns:1fr;max-width:560px}.psource-landing .sform textarea{font:inherit;font-size:14px;padding:8px 10px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--paper-2);color:var(--ink)}.psource-landing .sform .hp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.psource-landing .sup-note{color:var(--ink-3)}.psource-landing .sup-members{list-style:none;margin:0;padding:0}.psource-landing .sup-views{display:flex;gap:14px;margin:0 0 14px;font-size:14px}.psource-landing .sup-views a[aria-current=page]{font-weight:600;text-decoration:none}.psource-landing .fmap-bar{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-bottom:10px}.psource-landing .fmap-canvas{width:100%;height:min(70vh,620px);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.psource-landing .fmap-list{-moz-columns:280px 2;columns:280px 2;margin:16px 0 0;padding-left:18px;font-size:14px}.psource-landing .ftab-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--card)}.psource-landing .ftab{width:100%;border-collapse:collapse;font-size:14px}.psource-landing .ftab td,.psource-landing .ftab th{padding:10px 14px;text-align:left;border-bottom:1px solid var(--line-2);vertical-align:top}.psource-landing .ftab thead th{background:var(--paper-2);font-weight:600;white-space:nowrap}.psource-landing .ftab thead th a{display:inline-flex;align-items:center;gap:6px;color:var(--ink)}.psource-landing .ftab thead th a:focus-visible,.psource-landing .ftab thead th a:hover{color:var(--ochre)}.psource-landing .ftab-arrow{font-size:11px;color:var(--ink-3)}.psource-landing .ftab th[aria-sort=ascending] .ftab-arrow,.psource-landing .ftab th[aria-sort=descending] .ftab-arrow{color:var(--ochre)}.psource-landing .ftab tbody th{font-weight:500}.psource-landing .ftab tbody th a{color:var(--ochre)}.psource-landing .ftab tbody tr:hover{background:var(--paper)}.psource-landing .ftab .num{text-align:right;font-variant-numeric:tabular-nums}.psource-landing .ftab thead th.num a{flex-direction:row-reverse}.psource-landing .ftab-kind{display:inline-block;padding:2px 8px;border-radius:999px;font-size:12px;white-space:nowrap}.psource-landing .ftab-kind-claimed{background:var(--sage-soft);color:var(--sage)}.psource-landing .ftab-kind-public{background:var(--paper-2);color:var(--ink-3)}.psource-landing .ftab-foot{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:14px;font-size:14px}.psource-landing .ftab-size,.psource-landing .ftab-size label{display:flex;align-items:center;gap:8px}.psource-landing .ftab-pager{display:flex;align-items:center;gap:12px}