/* ── DOCUMENT VIEWER ───────────────────────────── */
/* Plain overlay (div, not <dialog>) so our custom cursor at z:9999 stays
   above the modal instead of being buried by the top-layer <dialog>. */
.document-viewer{position:fixed;inset:0;z-index:700;display:flex;align-items:center;justify-content:center;padding:16px;background:rgba(3,3,7,.76);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);animation:fadeIn .25s var(--ease);color:var(--text);
  /* Preview-only: block text/image selection so copy-paste and drag-save
     shortcuts don't grab document contents. Canvas rendering already
     produces pixels, not selectable text, but this covers the header
     title and status text too. */
  -webkit-user-select:none;-ms-user-select:none;user-select:none;-webkit-user-drag:none}
.document-viewer[hidden]{display:none}
.document-window{width:min(1180px,calc(100vw - 32px));height:min(900px,calc(100vh - 32px));border:1px solid rgba(255,255,255,.11);border-radius:22px;background:#0b0b10;box-shadow:0 40px 120px rgba(0,0,0,.72);overflow:hidden;display:grid;grid-template-rows:auto auto minmax(0,1fr);animation:demoIn .4s var(--ease)}
/* Bar-specific tweaks — the shared .window-bar in 04b-window-chrome
   handles the traffic-light chrome and the address bar. This just
   nudges the background to match the doc viewer's surface. */
.document-viewer-bar{background:rgba(14,14,20,.96)}
.document-toolbar{display:flex;align-items:center;justify-content:space-between;padding:9px 22px;border-bottom:1px solid var(--line);background:#0d0d14}
.document-pages,.document-zoom{display:flex;align-items:center;gap:10px;font-family:'JetBrains Mono',monospace;font-size:var(--fs-xs);color:#aaa9b7}
.document-zoom button{width:30px;height:30px;display:grid;place-items:center;border:1px solid var(--line);border-radius:8px;color:var(--text-white);cursor:pointer;background:transparent}
.document-zoom button:disabled{opacity:.25;cursor:not-allowed}
.document-stage{position:relative;min-height:0;overflow:auto;overscroll-behavior:contain;display:flex;align-items:flex-start;justify-content:center;padding:28px;background:radial-gradient(circle at 50% 0,rgba(167,139,250,.07),transparent 40%),#07070b}
.document-pages-list{display:flex;flex-direction:column;align-items:center;gap:20px}
.document-page-canvas,.document-stage>img{display:block;max-width:none;background:var(--text-white);box-shadow:0 18px 60px rgba(0,0,0,.55);-webkit-user-drag:none;user-drag:none;pointer-events:none}
/* Class rules above override the UA [hidden]{display:none} default, so
   the toolbar/img/list still showed when JS set hidden=true. */
.document-toolbar[hidden],.document-pages-list[hidden],.document-stage>img[hidden]{display:none}
.document-stage>img{max-width:min(100%,900px);height:auto}
.document-status{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-family:'JetBrains Mono',monospace;font-size:var(--fs-xs);letter-spacing:.08em;color:var(--text-mute)}

/* Curated section header actions and archive navigation. */
.section-heading-row{display:flex;align-items:flex-end;justify-content:space-between;gap:48px;margin-bottom:clamp(36px,4.5vw,64px)}
.section-heading-row .section-head{margin-bottom:0}
.section-index-link{display:grid;grid-template-columns:auto auto auto;align-items:baseline;gap:11px;flex:0 0 auto;padding:13px 0 11px;border-bottom:1px solid rgba(167,139,250,.38);font-family:'JetBrains Mono',monospace;font-size:var(--fs-2xs);letter-spacing:.12em;text-transform:uppercase;color:#a7a6b7;transition:color .25s var(--ease),border-color .25s var(--ease)}
.section-index-link strong{font-size:var(--fs-xl);font-weight:400;color:var(--text-white);letter-spacing:.03em}
.section-index-link span:last-child{color:var(--accent)}
.section-index-link:hover{color:var(--text-white);border-color:var(--accent)}
.archive-back{display:inline-flex;align-items:center;gap:10px;margin-bottom:34px;font-family:'JetBrains Mono',monospace;font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase;color:#aaa9b7;transition:color .25s var(--ease)}
.archive-back span{color:var(--accent)}
.archive-back:hover{color:var(--text-white)}
.section-heading-row-archive{display:block;margin-bottom:clamp(54px,7vw,90px)}
.section-heading-row-archive .section-head{margin-bottom:0}
.archive-page .nav{background:rgba(8,8,12,.84);-webkit-backdrop-filter:blur(20px) saturate(1.3);backdrop-filter:blur(20px) saturate(1.3);border-bottom:1px solid var(--line-soft)}
.archive-page .archive-section{padding-top:clamp(142px,14vw,206px)}
.archive-page .archive-section .section-head{max-width:960px;margin-bottom:clamp(44px,5.5vw,72px)}
.archive-page .archive-section .section-title{font-size:clamp(30px,3.4vw,48px);letter-spacing:-.032em;line-height:1.06}
.archive-page .archive-section .section-sub{max-width:680px;font-size:clamp(15px,1.5vw,18px)}

@media(max-width:960px){
  .recognition-feature{grid-template-columns:92px minmax(130px,.45fr) minmax(0,1fr);min-height:380px}
  .recognition-rail{padding:24px 16px}
  .recognition-copy{padding:40px 32px}
  .recognition-mark::before{width:150px;height:150px}
  .recognition-mark::after{width:108px;height:108px}
  .credential-documents{grid-template-columns:repeat(2,minmax(0,1fr))}
  .credential-shelf{grid-template-columns:repeat(2,minmax(0,1fr))}
  .selected-credential{min-height:340px}
  .journal-row{grid-template-columns:110px 1fr}
  .journal-row-action{grid-column:2;justify-self:start;margin-top:8px}
}

@media(max-width:640px){
  .nav-menu-btn{display:block}
  .mobile-nav{display:block;position:fixed;inset:0;z-index:201;background:rgba(8,8,12,.96);-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);opacity:0;visibility:hidden;transition:opacity .3s var(--ease),visibility .3s}
  .mobile-nav.is-open{opacity:1;visibility:visible}
  .mobile-nav-inner{height:100%;padding:96px 28px 32px;display:flex;flex-direction:column}
  .mobile-nav-link{font-size:clamp(30px,10vw,48px);font-weight:700;letter-spacing:-.04em;line-height:1.18;padding:8px 0;color:#f1f1f7}
  .mobile-nav-link::before{content:"0" counter(nav-item);counter-increment:nav-item;font-family:'JetBrains Mono',monospace;font-size:var(--fs-2xs);letter-spacing:.1em;color:var(--accent);margin-right:14px;vertical-align:middle}
  .mobile-nav-inner{counter-reset:nav-item}
  .mobile-nav-meta{margin-top:auto;padding-top:24px;border-top:1px solid var(--line);font-family:'JetBrains Mono',monospace;font-size:var(--fs-2xs);letter-spacing:.08em;color:var(--text-dim)}
  .hero-kicker{text-align:center}
  /* Recognition mobile layout is fully handled by the @media(max-width:760px)
     block in 14-credentials-journal.css (Phase 7 · R1). The previous
     @640 recognition-* rules that lived here conflicted with that fix. */
  .credential-ledger{margin-top:44px}
  .selected-credentials{margin-top:44px}
  .selected-credentials-head{align-items:flex-start}
  .selected-credentials-head>a{display:none}
  .credential-shelf{display:flex;gap:10px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;padding:16px var(--gutter) 8px;margin-left:calc(var(--gutter) * -1);margin-right:calc(var(--gutter) * -1);scroll-padding-left:var(--gutter)}
  .credential-shelf::-webkit-scrollbar{height:3px}
  .selected-credential{width:min(78vw,320px);min-width:min(78vw,320px);min-height:356px;scroll-snap-align:start}
  .selected-credential-visual{min-height:226px}
  .selected-credentials-mobile-link{display:flex;align-items:center;justify-content:space-between}
  /* Credential card — mobile. Reduce padding, drop the certificate
     grid to a single column, tighten the title. */
  .credential-card{padding:26px 20px 28px}
  .credential-card::after{background-size:36px 36px}
  .credential-card-head{gap:12px}
  .credential-card-title{font-size:var(--fs-2xl);margin-top:14px}
  .credential-card-summary-text{font-size:var(--fs-sm);line-height:1.65}
  .credential-card-divider{margin:22px 0 22px}
  .credential-documents{grid-template-columns:1fr;gap:22px}
  .journal-row,.journal-row:nth-child(n){grid-template-columns:1fr}
  .journal-row-action{grid-column:1}
  .document-viewer{padding:0}
  .document-window{width:100vw;height:100dvh;border-radius:0;border:0;max-width:none;max-height:none}
  .document-viewer-bar{padding:9px 12px}
  .document-viewer-bar .window-addr{padding:5px 10px;font-size:var(--fs-2xs)}
  .document-toolbar{padding:8px 14px}
  .document-stage{padding:16px 8px}
  .archive-page .archive-section{padding-top:116px}
}

