.rjp-age-calc{
  --rjp-ink:#1C2B45;
  --rjp-ink-light:#33456B;
  --rjp-paper:#ECEEE2;
  --rjp-card:#F8F8F2;
  --rjp-seal-red:#A63D40;
  --rjp-seal-red-dark:#7C2C2E;
  --rjp-seal-green:#2E6E48;
  --rjp-seal-green-dark:#1F4E33;
  --rjp-gold:#B8863B;
  --rjp-slate:#5B6472;
  --rjp-line:#D6D4C4;
  --rjp-font-display:'Fraunces', Georgia, serif;
  --rjp-font-body:'Inter', -apple-system, sans-serif;
  --rjp-font-mono:'IBM Plex Mono', 'Courier New', monospace;

  max-width:920px;
  margin:0 auto;
  padding:32px 16px 48px;
  background:var(--rjp-paper);
  background-image:repeating-linear-gradient(0deg, rgba(28,43,69,0.025) 0px, rgba(28,43,69,0.025) 1px, transparent 1px, transparent 32px);
  font-family:var(--rjp-font-body);
  color:var(--rjp-ink);
  box-sizing:border-box;
}
.rjp-age-calc *{box-sizing:border-box;}
.rjp-age-calc .rjp-header{text-align:center; margin-bottom:28px;}
.rjp-age-calc .rjp-eyebrow{
  font-family:var(--rjp-font-mono);
  font-size:11px;
  letter-spacing:0.18em;
  text-transform:uppercase;
  color:var(--rjp-gold);
  font-weight:600;
}
.rjp-age-calc h2.rjp-title{
  font-family:var(--rjp-font-display);
  font-weight:600;
  font-size:clamp(26px,4vw,36px);
  margin:8px 0 4px;
  letter-spacing:-0.01em;
  color:var(--rjp-ink);
}
.rjp-age-calc .rjp-sub{color:var(--rjp-slate); font-size:14px; max-width:520px; margin:0 auto;}
.rjp-age-calc .rjp-rule{
  height:1px;
  background:repeating-linear-gradient(90deg, var(--rjp-ink) 0 6px, transparent 6px 10px);
  opacity:0.35;
  margin:20px auto 0;
  max-width:520px;
}
.rjp-age-calc .rjp-board{
  display:grid;
  grid-template-columns:1.15fr 0.85fr;
  gap:0;
  background:var(--rjp-card);
  border:1px solid var(--rjp-line);
  border-radius:2px;
  overflow:hidden;
}
@media (max-width:720px){ .rjp-age-calc .rjp-board{grid-template-columns:1fr;} }
.rjp-age-calc .rjp-form-side{padding:28px; border-right:1px solid var(--rjp-line);}
@media (max-width:720px){ .rjp-age-calc .rjp-form-side{border-right:none; border-bottom:1px solid var(--rjp-line);} }
.rjp-age-calc .rjp-field{margin-bottom:18px;}
.rjp-age-calc .rjp-field label{
  display:block; font-size:12px; font-weight:600; text-transform:uppercase;
  letter-spacing:0.06em; color:var(--rjp-ink-light); margin-bottom:6px;
}
.rjp-age-calc .rjp-hint{font-size:11.5px; color:var(--rjp-slate); margin-top:5px;}
.rjp-age-calc input[type="date"],
.rjp-age-calc select,
.rjp-age-calc input[type="number"]{
  width:100%; font-family:var(--rjp-font-mono); font-size:14px;
  padding:10px 12px; border:1px solid #C7C5B4; border-radius:3px;
  background:#fff; color:var(--rjp-ink); appearance:auto;
}
.rjp-age-calc select{font-family:var(--rjp-font-body); font-size:14px;}
.rjp-age-calc input:focus, .rjp-age-calc select:focus{
  outline:none; border-color:var(--rjp-ink-light);
  box-shadow:0 0 0 3px rgba(51,69,107,0.12);
}
.rjp-age-calc .rjp-cat-grid{display:grid; grid-template-columns:1fr 1fr; gap:10px;}
.rjp-age-calc button.rjp-check{
  width:100%; margin-top:4px; padding:14px 18px; background:var(--rjp-ink);
  color:#F4F3EA; border:none; border-radius:3px; font-family:var(--rjp-font-body);
  font-weight:600; font-size:14.5px; letter-spacing:0.02em; cursor:pointer;
  transition:background 0.15s ease;
}
.rjp-age-calc button.rjp-check:hover{background:var(--rjp-ink-light);}
.rjp-age-calc button.rjp-check:active{transform:translateY(1px);}
.rjp-age-calc .rjp-result-side{
  padding:28px; display:flex; flex-direction:column; align-items:center;
  justify-content:center; text-align:center;
  background:radial-gradient(circle at 50% 40%, rgba(184,134,59,0.06), transparent 60%);
}
.rjp-age-calc .rjp-placeholder{color:var(--rjp-slate); font-size:13.5px; max-width:220px; line-height:1.6;}
.rjp-age-calc .rjp-placeholder .rjp-seal-outline{
  display:block; width:56px; height:56px; margin:0 auto 14px;
  border:2px dashed var(--rjp-line); border-radius:50%;
}
.rjp-age-calc .rjp-stamp-wrap{display:none;}
.rjp-age-calc .rjp-stamp-wrap.rjp-show{display:block;}
.rjp-age-calc .rjp-stamp{
  width:126px; height:126px; border-radius:50%; border:3px solid var(--rjp-seal-red);
  display:flex; align-items:center; justify-content:center; margin:0 auto 16px;
  position:relative; transform:rotate(-10deg) scale(0.4); opacity:0;
}
.rjp-age-calc .rjp-stamp.rjp-eligible{border-color:var(--rjp-seal-green);}
.rjp-age-calc .rjp-stamp.rjp-animate{animation:rjp-press 0.55s cubic-bezier(.2,1.4,.4,1) forwards;}
@keyframes rjp-press{
  0%{transform:rotate(-16deg) scale(1.5); opacity:0;}
  55%{transform:rotate(-10deg) scale(0.92); opacity:1;}
  100%{transform:rotate(-8deg) scale(1); opacity:1;}
}
.rjp-age-calc .rjp-stamp::before{
  content:''; position:absolute; inset:8px; border:1px solid var(--rjp-seal-red); border-radius:50%;
}
.rjp-age-calc .rjp-stamp.rjp-eligible::before{border-color:var(--rjp-seal-green);}
.rjp-age-calc .rjp-stamp-text{
  font-family:var(--rjp-font-display); font-weight:700; font-size:15px;
  color:var(--rjp-seal-red); letter-spacing:0.03em; line-height:1.15;
}
.rjp-age-calc .rjp-stamp.rjp-eligible .rjp-stamp-text{color:var(--rjp-seal-green);}
.rjp-age-calc .rjp-age-readout{font-family:var(--rjp-font-mono); font-size:21px; font-weight:600; margin-bottom:4px;}
.rjp-age-calc .rjp-age-label{font-size:11.5px; color:var(--rjp-slate); text-transform:uppercase; letter-spacing:0.08em; margin-bottom:16px;}
.rjp-age-calc .rjp-verdict{font-weight:600; font-size:14.5px; margin-bottom:6px;}
.rjp-age-calc .rjp-verdict.rjp-pass{color:var(--rjp-seal-green-dark);}
.rjp-age-calc .rjp-verdict.rjp-fail{color:var(--rjp-seal-red-dark);}
.rjp-age-calc .rjp-range-note{font-size:12.5px; color:var(--rjp-slate); line-height:1.6;}
.rjp-age-calc .rjp-range-note b{color:var(--rjp-ink);}
.rjp-age-calc .rjp-table-section{margin-top:32px;}
.rjp-age-calc .rjp-table-section h3{font-family:var(--rjp-font-display); font-size:18px; font-weight:600; margin:0 0 4px; color:var(--rjp-ink);}
.rjp-age-calc .rjp-table-section .rjp-sub2{font-size:13px; color:var(--rjp-slate); margin:0 0 14px;}
.rjp-age-calc table{width:100%; border-collapse:collapse; background:var(--rjp-card); border:1px solid var(--rjp-line); font-size:13px;}
.rjp-age-calc thead th{
  text-align:left; font-family:var(--rjp-font-mono); font-size:11px; text-transform:uppercase;
  letter-spacing:0.05em; color:var(--rjp-ink-light); background:#E4E2D2; padding:10px 12px;
  border-bottom:1px solid var(--rjp-line);
}
.rjp-age-calc tbody td{padding:10px 12px; border-bottom:1px solid var(--rjp-line); color:var(--rjp-ink);}
.rjp-age-calc tbody tr:last-child td{border-bottom:none;}
.rjp-age-calc tbody tr:hover{background:rgba(184,134,59,0.05);}
.rjp-age-calc .rjp-footer{margin-top:24px; text-align:center; font-size:12px; color:var(--rjp-slate); line-height:1.7;}
.rjp-age-calc .rjp-disclaimer{max-width:640px; margin:0 auto; padding-top:6px;}
