/* Pupfish selective-access layer */
.access-request-trigger{cursor:pointer}
.discovery-boundary{margin:0;color:#5B6F89;font-size:14px;line-height:1.5}
.private-concept-card .project-visual{filter:saturate(.86)}
.private-concept-card .project-state{color:#5B6F89}

.access-modal[hidden]{display:none}
.access-modal{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:24px}
.access-backdrop{position:absolute;inset:0;background:rgba(9,20,36,.72);backdrop-filter:blur(8px)}
.access-dialog{position:relative;z-index:1;width:min(720px,100%);max-height:min(90vh,860px);overflow:auto;background:#fff;border:1px solid #D6E0EB;border-radius:24px;padding:30px;box-shadow:0 30px 90px rgba(15,23,38,.34)}
.access-dialog h2{margin:0 0 12px;font:400 clamp(36px,6vw,56px)/1 Georgia,serif;letter-spacing:-.035em;color:#0F1726}
.access-intro{margin:0 0 24px;color:#5B6F89;font-size:16px;line-height:1.55}
.access-close{position:absolute;top:14px;right:14px;width:40px;height:40px;border:0;background:transparent;color:#0F1726;font-size:28px;line-height:1;cursor:pointer;border-radius:50%}
.access-close:hover{background:#EDF3F8}
.access-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.access-dialog label{display:grid;gap:7px;margin-bottom:14px;color:#34414c;font-size:13px;font-weight:800}
.access-dialog input,.access-dialog textarea{width:100%;border:1px solid #B9C7D6;border-radius:12px;background:#FBFCFE;color:#0F1726;padding:12px 13px;font:500 15px/1.35 system-ui,sans-serif}
.access-dialog textarea{resize:vertical;min-height:110px}
.access-dialog input:focus,.access-dialog textarea:focus{outline:3px solid rgba(31,77,184,.18);border-color:#1F4DB8}
.access-check{display:flex!important;grid-template-columns:none!important;align-items:flex-start;gap:10px!important;font-weight:600!important}
.access-check input{width:18px;height:18px;flex:0 0 auto;margin-top:1px}
.access-submit-row{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:4px}
.access-note{margin:0;color:#5B6F89;font-size:13px}
.access-note.is-error{color:#A33A2B}
.access-note.is-success{color:#1E6A4B}
body.access-open{overflow:hidden}
@media(max-width:640px){
  .access-modal{padding:12px}
  .access-dialog{padding:24px 18px 20px;border-radius:18px}
  .access-grid{grid-template-columns:1fr}
  .access-submit-row .button{width:100%}
}
