/* ==========================================================
   FMRG Theme: ABRS — Axals Bureau of Reality Stabilization
   阿克萨斯·现实稳定局
   "Calibrating the Unseen."
   
   Usage: add class="theme-abrs" to .page
   ========================================================== */

.theme-abrs{
  /* — Color System — */
  --ink:          #0c0c0e;
  --muted:        #6b6e78;
  --line:         #2a2c33;
  --thin:         rgba(0,0,0,.18);
  --bg:           #fdfdfe;
  --accent:       #4a6fa5;          /* cold steel-blue, low saturation */
  --accent-light: rgba(74,111,165,.08);
  --accent-mid:   rgba(74,111,165,.18);

  /* — Borders — */
  --b1: 1px solid var(--line);
  --b0: 1px solid var(--thin);

  /* — Letterhead — */
  --lh-h:       124px;
  --lh-logo-h:  72px;
  --lh-pad-x:   20px;
  --lh-gap:     12px;

  /* — Paper Texture — */
  --paper-grain:   .030;
  --paper-grid-1:  .045;           /* small engineering grid */
  --paper-grid-2:  .070;           /* large engineering grid (bolder) */

  /* — Watermark — */
  --wm-opacity:  .045;
  --wm-size:     420px;
  --wm-color:    var(--ink);

  /* — Stamp — */
  --stamp-size:    132px;
  --stamp-ink:     var(--accent);
  --stamp-opacity: .12;
  --stamp-rotate:  -14deg;
  --stamp-x:       0px;
  --stamp-y:       0px;

  /* — Footer Banner — */
  --fb-bg:       rgba(74,111,165,.05);
  --fb-border:   rgba(74,111,165,.18);
}


/* ==========================================================
   PAPER TEXTURE — Engineering Paper (pure CSS)
   Layer 1: fine grain (paper feel)
   Layer 2: small grid (5mm-like, 22px)
   Layer 3: large grid (25mm-like, 110px, bolder)
   ========================================================== */
.page.theme-abrs::before{
  content:"";
  position:absolute; inset:0;
  z-index:0;
  pointer-events:none;
  background:
    /* L1 — paper grain (tiny dots) */
    radial-gradient(
      rgba(0,0,0,var(--paper-grain)) .8px,
      transparent .8px
    ),
    /* L2 — small engineering grid */
    linear-gradient(
      rgba(0,0,0,var(--paper-grid-1)) .5px,
      transparent .5px
    ),
    linear-gradient(
      90deg,
      rgba(0,0,0,var(--paper-grid-1)) .5px,
      transparent .5px
    ),
    /* L3 — large engineering grid (every 5th line bolder) */
    linear-gradient(
      rgba(0,0,0,var(--paper-grid-2)) .5px,
      transparent .5px
    ),
    linear-gradient(
      90deg,
      rgba(0,0,0,var(--paper-grid-2)) .5px,
      transparent .5px
    );
  background-size:
    4px 4px,          /* grain */
    22px 22px,         /* small grid */
    22px 22px,         /* small grid */
    110px 110px,       /* large grid */
    110px 110px;       /* large grid */
}


/* ==========================================================
   CORNER CALIBRATION MARKS (engineering aesthetic)
   ========================================================== */
.page.theme-abrs::after{
  content:"";
  position:absolute; inset:0;
  z-index:0;
  pointer-events:none;
  background:
    /* top-left corner cross */
    linear-gradient(rgba(0,0,0,.06) .5px, transparent .5px),
    linear-gradient(90deg, rgba(0,0,0,.06) .5px, transparent .5px),
    /* bottom-right corner cross */
    linear-gradient(rgba(0,0,0,.06) .5px, transparent .5px),
    linear-gradient(90deg, rgba(0,0,0,.06) .5px, transparent .5px);
  background-size:
    30px 1px,
    1px 30px,
    30px 1px,
    1px 30px;
  background-position:
    8px 8px,
    8px 8px,
    calc(100% - 8px) calc(100% - 8px),
    calc(100% - 8px) calc(100% - 8px);
  background-repeat: no-repeat;
}

/* ==========================================================
   ABRS TITLE PAGE (A4 cover)
   ========================================================== */
.page.theme-abrs.title-page .sheet{
  min-height: 297mm;
  display:flex;
  flex-direction: column;
  align-items:center;
  justify-content:center;
  padding: 22px 28px;
}

.page.theme-abrs.title-page .abrs-cover-logo-wrap{
  display:flex;
  justify-content:center;
  align-items:center;
  width: 60mm;
  height: 58mm;
  min-width: 60mm;
  min-height: 58mm;
  margin-bottom: 18px;
}

.page.theme-abrs.title-page .abrs-cover{
  width: min(560px, 86%);
  border: 1.5px solid var(--line);
  background: rgba(255,255,255,.86);
  padding: 18px 18px 16px;
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.08);
}

.page.theme-abrs.title-page .abrs-cover-logo{
  width: 100%;
  height: 100%;
  object-fit: contain;
  display:block;
}

.page.theme-abrs.title-page .abrs-cover-avatar{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap: 6px;
  margin: 8px 0 12px;
}

.page.theme-abrs.title-page .abrs-cover-title{
  border-top: var(--b1);
  border-bottom: var(--b1);
  text-align:center;
  font-family: var(--sans);
  font-weight: 800;
  letter-spacing: .14em;
  font-size: 13px;
  padding: 8px 6px;
  margin-bottom: 10px;
}

.page.theme-abrs.title-page .abrs-cover-grid{
  display:grid;
  grid-template-columns: 132px 1fr;
  border: var(--b1);
  font-family: var(--mono);
  font-size: 12px;
}

.page.theme-abrs.title-page .abrs-cover-grid .k,
.page.theme-abrs.title-page .abrs-cover-grid .v{
  padding: 8px 10px;
  border-top: var(--b0);
}

.page.theme-abrs.title-page .abrs-cover-grid .k{
  border-right: var(--b0);
  color: var(--muted);
  background: rgba(0,0,0,.02);
}

.page.theme-abrs.title-page .abrs-cover-grid .k:nth-child(-n+2),
.page.theme-abrs.title-page .abrs-cover-grid .v:nth-child(-n+2){
  border-top: none;
}

.page.theme-abrs .avatar-slot{
  cursor: default;
}

.page.theme-abrs .avatar-label{
  display: none;
}


/* ==========================================================
   PRINT OVERRIDES (ABRS-specific)
   ========================================================== */
@media print{
  .page.theme-abrs::before{
    opacity: .35;
  }
  .page.theme-abrs::after{
    opacity: .25;
  }
}
