#nrp-modal { position:fixed; inset:0; z-index:2147483647; display:flex; align-items:center; justify-content:center; padding:20px 16px; background:rgba(10,4,8,.88); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); animation:nrpIn .16s ease-out; }
#nrp-modal .nrp-box { width:100%; max-width:660px; max-height:88vh; border-radius:20px; display:flex; flex-direction:column; overflow:hidden; background:var(--nrp-bg); box-shadow:0 0 0 1px var(--nrp-brd),0 40px 90px rgba(0,0,0,.65); animation:nrpUp .22s cubic-bezier(.34,1.08,.64,1) both; font-family:"Inter","Helvetica Neue",sans-serif; }
#nrp-modal .nrp-hdr { display:flex; align-items:center; gap:16px; padding:20px 22px 18px; border-bottom:1px solid var(--nrp-brd); flex-shrink:0; background:var(--nrp-bg); }
#nrp-modal .nrp-htxt { flex:1; min-width:0; }
#nrp-modal .nrp-htitle { margin:0 0 4px; font-size:19px; font-weight:600; color:var(--nrp-fg); line-height:1.3; word-break:break-word; font-family:"Fraunces",Georgia,serif; letter-spacing:-.01em; }
#nrp-modal .nrp-hauthor { margin:0; font-size:13.5px; color:var(--nrp-fg2); font-style:italic; }
#nrp-modal .nrp-x { align-self:flex-start; flex-shrink:0; width:34px; height:34px; min-width:34px; border-radius:50%; border:none; background:var(--nrp-bg3); cursor:pointer; font-size:18px; color:var(--nrp-fg2); display:flex; align-items:center; justify-content:center; line-height:1; transition:background .12s,color .12s; }
#nrp-modal .nrp-x:hover { background:var(--nrp-acc); color:#fff; }
#nrp-modal .nrp-body { overflow-y:auto; overscroll-behavior:contain; padding:24px 26px 20px; flex:1; font-size:15.5px; line-height:1.75; color:var(--nrp-fg); background:var(--nrp-bg); font-family:"Inter","Helvetica Neue",sans-serif; }
#nrp-modal .nrp-ftr { display:flex; gap:10px; padding:16px 24px; border-top:1px solid var(--nrp-brd); flex-shrink:0; flex-wrap:wrap; background:var(--nrp-bg2); }
#nrp-modal .nrp-btn { flex:1; min-width:140px; padding:12px 18px; border-radius:10px; font-size:14px; font-weight:600; cursor:pointer; font-family:inherit; transition:opacity .14s,transform .14s; border:none; }
#nrp-modal .nrp-btn-g { background:var(--nrp-acc); color:#fff; }
#nrp-modal .nrp-btn-o { background:transparent; color:var(--nrp-acc); box-shadow:inset 0 0 0 1.5px var(--nrp-acc); }
#nrp-modal .nrp-btn-d { background:transparent; color:var(--nrp-danger); box-shadow:inset 0 0 0 1.5px var(--nrp-danger); }
#nrp-modal .nrp-btn:hover { opacity:.82; transform:translateY(-1px); }
#nrp-modal .nrp-btn-d:hover { background:var(--nrp-danger); color:#fff; opacity:1; }
#nrp-modal .nrp-link { flex:1; min-width:140px; padding:12px 18px; border-radius:10px; font-size:14px; font-weight:600; background:var(--nrp-acc); color:#fff; text-decoration:none; display:inline-flex; align-items:center; justify-content:center; text-align:center; transition:opacity .14s; }
#nrp-modal .nrp-link:hover { opacity:.82; }

/* Clickable term & Footnote Styling */
#nrp-modal .nrp-term { cursor:pointer; color:var(--nrp-acc); font-weight:600; text-decoration:underline dotted; text-decoration-color:var(--nrp-acc); text-underline-offset:3px; transition:background .12s,color .12s; display:inline-block; line-height:1.5; }
#nrp-modal .nrp-term:hover { background:var(--nrp-acc); color:#fff; text-decoration-color:transparent; }
#nrp-modal .nrp-fn-num { font-size:.75em; font-weight:700; vertical-align:super; margin-left:2px; padding:0 2px; }

/* Popups are appended to <body>, so they must NOT be nested under #nrp-modal in CSS */
.nrp-fnpop { position:fixed; z-index:2147483648; width:300px; max-width:calc(100vw - 24px); background:var(--nrp-bg2); border:1px solid var(--nrp-brd); border-left:3px solid var(--nrp-acc); border-radius:12px; padding:14px 16px; font-size:14px; line-height:1.7; color:var(--nrp-fg); font-family:"Inter","Helvetica Neue",sans-serif; box-shadow:0 8px 36px rgba(0,0,0,.55); animation:nrpIn .14s ease-out; }
.nrp-fnbadge { display:inline-flex; align-items:center; justify-content:center; background:var(--nrp-acc); color:#fff; font-size:11px; font-weight:800; width:20px; height:20px; border-radius:50%; margin-right:8px; flex-shrink:0; vertical-align:middle; }

@keyframes nrpIn{from{opacity:0}to{opacity:1}}
@keyframes nrpUp{from{opacity:0;transform:translateY(30px) scale(.95)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}