.specimen-archive{--cw:310px;--ch:460px;--dw:340px;--accent:#cdb682;--ease-out:cubic-bezier(.16,1,.3,1);position:relative;overflow:hidden;background:radial-gradient(ellipse at 50% 45%,#8b976344,transparent 65%),#2a352e;border:1px solid #8f9474;margin:26px 0;color:#ede6d5}.specimen-stage{height:570px;position:relative;perspective:1400px;touch-action:pan-y}.specimen-stage .card{position:absolute;left:50%;top:50%;transition:transform .62s var(--ease-out),opacity .62s,width .62s,height .62s;will-change:transform}.specimen-stage.resetting .card{transition:none!important}
.specimen-archive .card{
  position: absolute;
  left: 50%;
  top: 50%;
  width: var(--cw);
  height: var(--ch);
  transform: translate(-50%, -50%);
  transform-origin: 50% 50%;
  transform-style: flat;
  transition: width 0.8s var(--ease-out), height 0.65s var(--ease-out);
  outline: none;
  cursor: pointer;
  will-change: transform, opacity;
}

.specimen-archive .card::before{
  content: "";
  position: absolute;
  inset: -2px;
  z-index: -1;
  border-radius: 7px;
  pointer-events: none;
  box-shadow:
    0 48px 86px -36px rgba(0, 0, 0, 0.92),
    0 0 0 0 rgba(var(--accent-rgb), 0);
  transition: box-shadow 0.6s ease;
}

.specimen-archive .card.is-focus::before{
  box-shadow:
    0 50px 96px -38px rgba(0, 0, 0, 0.96),
    0 0 84px -14px rgba(var(--accent-rgb), 0.5);
}

.specimen-archive .card.is-open::before{
  box-shadow:
    0 56px 110px -42px rgba(0, 0, 0, 0.98),
    0 0 96px -22px rgba(var(--accent-rgb), 0.5);
}

.specimen-archive .card:focus-visible .card__shell{
  outline: 1px solid rgba(var(--accent-rgb), 0.8);
  outline-offset: 4px;
}

.specimen-archive .card__shell{
  position: absolute;
  inset: 0;
  overflow: hidden;
  border-radius: 5px;
  border: 1px solid rgba(170, 255, 240, 0.24);
  background:
    linear-gradient(155deg, rgba(200, 255, 246, 0.2), rgba(28, 80, 76, 0.14) 38%, rgba(4, 14, 16, 0.5) 100%);
  -webkit-backdrop-filter: blur(22px) saturate(165%);
  backdrop-filter: blur(22px) saturate(165%);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.26),
    inset 0 0 0 1px rgba(8, 38, 36, 0.25),
    inset 0 -70px 90px -70px rgba(0, 0, 0, 0.75);
  transition: border-color 0.55s ease, box-shadow 0.55s ease, transform 0.4s var(--ease-out);
  contain: paint;
}

.specimen-archive .card:active .card__shell{ transform: scale(0.993); }

.specimen-archive .card.is-focus .card__shell{
  border-color: rgba(var(--accent-rgb), 0.7);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.44),
    inset 0 0 0 1px rgba(var(--accent-rgb), 0.16),
    inset 0 0 100px -30px rgba(var(--accent-rgb), 0.46);
}

.specimen-archive .card.is-open{
  width: calc(var(--cw) + var(--dw));
  cursor: default;
}

.specimen-archive .card.is-open .card__shell{
  border-color: rgba(var(--accent-rgb), 0.5);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.34),
    inset 0 0 0 1px rgba(var(--accent-rgb), 0.12),
    inset 0 0 110px -50px rgba(var(--accent-rgb), 0.3);
}

.specimen-archive /* card visual (procedural artwork) */

.card__visual{
  position: absolute;
  inset: 0;
  z-index: 0;
  opacity: 1;
  transition: opacity 0.6s ease;
}

.specimen-archive .card__visual svg{
  display: block;
  width: 100%;
  height: 100%;
}

.specimen-archive .card__veil{
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background:
    linear-gradient(to top,
      rgba(3, 11, 12, 0.86) 0%,
      rgba(3, 11, 12, 0.56) 25%,
      rgba(3, 11, 12, 0.02) 57%,
      rgba(3, 11, 12, 0.28) 100%),
    radial-gradient(130% 70% at 50% 0%, rgba(var(--accent-rgb), 0.09), transparent 62%);
}

.specimen-archive .card__spot{
  position: absolute;
  inset: 0;
  z-index: 5;
  pointer-events: none;
  opacity: 0;
  mix-blend-mode: screen;
  background: radial-gradient(
    230px circle at var(--mx, 50%) var(--my, 38%),
    rgba(255, 255, 255, 0.11),
    rgba(var(--accent-rgb), 0.05) 38%,
    transparent 68%
  );
  transition: opacity 0.45s ease;
}

.specimen-archive .card:hover .card__spot{ opacity: 1; }

.specimen-archive .card__scan{
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  height: 130px;
  z-index: 6;
  pointer-events: none;
  background: linear-gradient(to bottom,
    transparent,
    rgba(var(--accent-rgb), 0.07) 48%,
    rgba(255, 255, 255, 0.05) 50%,
    transparent);
  mix-blend-mode: screen;
  animation: card-scan 7.5s linear infinite;
  opacity: 0.8;
}

@keyframes card-scan {
.specimen-archive 0%{ transform: translateY(-150px); }
.specimen-archive 100%{ transform: translateY(calc(var(--ch) + 150px)); }
}

.specimen-archive .card__grain{
  position: absolute;
  inset: 0;
  z-index: 6;
  pointer-events: none;
  background-image: var(--noise);
  opacity: 0.06;
  mix-blend-mode: overlay;
}

.specimen-archive .card__shell::after{
  content: "";
  position: absolute;
  inset: 0;
  z-index: 7;
  pointer-events: none;
  background: linear-gradient(118deg,
    rgba(255, 255, 255, 0.16),
    transparent 20%,
    transparent 74%,
    rgba(255, 255, 255, 0.05));
  opacity: 0.75;
}

.specimen-archive /* corner ticks */

.corner{
  position: absolute;
  z-index: 8;
  width: 15px;
  height: 15px;
  pointer-events: none;
  border-color: rgba(var(--accent-rgb), 0.55);
  border-style: solid;
  border-width: 0;
  transition: border-color 0.5s ease;
}

.specimen-archive .corner--tl{ top: 8px; left: 8px; border-top-width: 1px; border-left-width: 1px; }
.specimen-archive .corner--tr{ top: 8px; right: 8px; border-top-width: 1px; border-right-width: 1px; }
.specimen-archive .corner--bl{ bottom: 8px; left: 8px; border-bottom-width: 1px; border-left-width: 1px; }
.specimen-archive .corner--br{ bottom: 8px; right: 8px; border-bottom-width: 1px; border-right-width: 1px; }

.specimen-archive /* =========================================================
   Card cover
   ========================================================= */

.card__cover{
  position: absolute;
  inset: 0 auto 0 0;
  z-index: 3;
  width: var(--cw);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 18px 20px 18px;
  pointer-events: none;
}

.specimen-archive .card__head{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.specimen-archive .card__code{
  position: relative;
  padding-left: 12px;
  font-size: 9px;
  letter-spacing: 0.2em;
  color: rgba(220, 255, 248, 0.72);
}

.specimen-archive .card__code::before{
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  width: 5px;
  height: 1px;
  background: var(--accent);
  box-shadow: 0 0 6px var(--accent);
}

.specimen-archive .card__tag{
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 8px 3px;
  border: 1px solid rgba(var(--accent-rgb), 0.38);
  background: rgba(var(--accent-rgb), 0.09);
  font-size: 8.5px;
  letter-spacing: 0.18em;
  color: rgba(235, 255, 250, 0.86);
  white-space: nowrap;
}

.specimen-archive .card__tag i{
  width: 3px;
  height: 3px;
  border-radius: 50%;
  background: var(--accent);
  box-shadow: 0 0 6px var(--accent);
}

.specimen-archive .card__body{
  margin-top: auto;
  padding-top: 56px;
}

.specimen-archive .card__eyebrow{
  display: block;
  margin-bottom: 9px;
  font-size: 8px;
  letter-spacing: 0.26em;
  color: rgba(var(--accent-rgb), 0.78);
}

.specimen-archive .card__name{
  margin: 0;
  font-size: 28px;
  font-weight: 600;
  line-height: 1.18;
  letter-spacing: 0.04em;
  color: #f2fffc;
  text-shadow: 0 2px 26px rgba(0, 0, 0, 0.65);
}

.specimen-archive .card__en{
  margin: 8px 0 0;
  font-family: var(--font-display);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.32em;
  color: rgba(var(--accent-rgb), 0.9);
}

.specimen-archive .card__desc{
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  margin: 12px 0 0;
  font-size: 11.5px;
  line-height: 1.8;
  color: rgba(206, 240, 233, 0.6);
  letter-spacing: 0.02em;
}

.specimen-archive .card__foot{
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 14px;
  padding-top: 10px;
  border-top: 1px solid rgba(var(--accent-rgb), 0.14);
  font-size: 8px;
  letter-spacing: 0.16em;
  color: rgba(180, 224, 216, 0.42);
}

.specimen-archive /* =========================================================
   Card detail (expanded)
   ========================================================= */

.card__detail{
  position: absolute;
  top: 0;
  bottom: 0;
  left: var(--cw);
  right: 0;
  z-index: 4;
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: 20px 22px 14px 26px;
  opacity: 0;
  transform: translateX(28px);
  pointer-events: none;
  transition:
    opacity 0.4s ease 0.06s,
    transform 0.8s var(--ease-out) 0.04s;
  background:
    linear-gradient(90deg, rgba(5, 17, 18, 0.5), rgba(5, 17, 18, 0.24)),
    radial-gradient(90% 60% at 0% 0%, rgba(var(--accent-rgb), 0.07), transparent 60%);
  border-left: 1px solid rgba(var(--accent-rgb), 0.22);
}

.specimen-archive .card.is-open .card__detail{
  opacity: 1;
  transform: none;
  pointer-events: auto;
}

.specimen-archive .card__detail::before{
  content: "";
  position: absolute;
  left: -1px;
  top: 0;
  width: 1px;
  height: 64px;
  background: linear-gradient(to bottom, var(--accent), transparent);
  opacity: 0.9;
}

.specimen-archive .detail__close{
  position: absolute;
  top: 12px;
  right: 12px;
  z-index: 6;
  width: 28px;
  height: 28px;
  display: grid;
  place-items: center;
  padding: 0;
  border: 1px solid rgba(var(--accent-rgb), 0.22);
  background: rgba(6, 20, 21, 0.5);
  color: rgba(220, 255, 248, 0.7);
  cursor: pointer;
  opacity: 0;
  transform: scale(0.86);
  pointer-events: none;
  transition: opacity 0.35s ease 0.2s, transform 0.5s var(--ease-out) 0.2s,
              color 0.25s ease, border-color 0.25s ease, background 0.25s ease;
}

.specimen-archive .detail__close svg{
  width: 13px;
  height: 13px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.4;
  stroke-linecap: square;
}

.specimen-archive .card.is-open .detail__close{
  opacity: 1;
  transform: none;
  pointer-events: auto;
}

.specimen-archive .detail__close:hover{
  color: #eafffb;
  border-color: rgba(var(--accent-rgb), 0.6);
  background: rgba(var(--accent-rgb), 0.14);
}

.specimen-archive .detail__scroll{
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
  touch-action: pan-y;
  padding-right: 6px;
  scrollbar-width: thin;
  scrollbar-color: rgba(var(--accent-rgb), 0.3) rgba(255, 255, 255, 0.03);
}

.specimen-archive .detail__scroll::-webkit-scrollbar{ width: 2px; }
.specimen-archive .detail__scroll::-webkit-scrollbar-track{ background: rgba(255, 255, 255, 0.03); }
.specimen-archive .detail__scroll::-webkit-scrollbar-thumb{ background: rgba(var(--accent-rgb), 0.3); }

.specimen-archive .detail__top{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding-right: 40px;
  font-size: 8px;
  letter-spacing: 0.22em;
  color: rgba(190, 235, 226, 0.42);
}

.specimen-archive .detail__state{
  display: inline-flex;
  align-items: center;
  gap: 5px;
  color: rgba(var(--accent-rgb), 0.85);
  font-size: 8px;
  letter-spacing: 0.18em;
}

.specimen-archive .detail__state i{
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: var(--accent);
  box-shadow: 0 0 7px var(--accent);
  animation: pulse-dot 2.4s ease-in-out infinite;
}

.specimen-archive .detail__title{
  margin: 14px 0 0;
  font-size: 22px;
  font-weight: 600;
  letter-spacing: 0.05em;
  line-height: 1.3;
  color: #f4fffd;
}

.specimen-archive .detail__lead{
  margin: 10px 0 0;
  font-size: 12px;
  line-height: 1.9;
  color: rgba(214, 245, 238, 0.72);
  letter-spacing: 0.01em;
}

.specimen-archive .stats{
  display: grid;
  gap: 10px;
  margin: 18px 0 0;
}

.specimen-archive .stat__row{
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 5px;
}

.specimen-archive .stat__label{
  font-size: 9px;
  letter-spacing: 0.16em;
  color: rgba(190, 232, 224, 0.5);
}

.specimen-archive .stat__val{
  font-size: 9px;
  letter-spacing: 0.08em;
  color: rgba(var(--accent-rgb), 0.9);
}

.specimen-archive .stat__track{
  height: 3px;
  background: rgba(255, 255, 255, 0.12);
  overflow: hidden;
}

.specimen-archive .stat__fill{
  display: block;
  height: 100%;
  width: calc(var(--v) * 100%);
  background: linear-gradient(90deg, rgba(var(--accent-rgb), 0.3), rgba(var(--accent-rgb), 1));
  box-shadow: 0 0 10px rgba(var(--accent-rgb), 0.65);
  transform: scaleX(0);
  transform-origin: 0 50%;
  transition: transform 0.95s var(--ease-out) calc(0.24s + var(--i) * 0.08s);
}

.specimen-archive .card.is-open .stat__fill{ transform: scaleX(1); }

.specimen-archive .meta{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  margin: 18px 0 0;
  border-top: 1px solid rgba(255, 255, 255, 0.07);
}

.specimen-archive .meta__cell{
  padding: 9px 10px 8px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  min-width: 0;
}

.specimen-archive .meta__cell:nth-child(even){ padding-left: 12px; }

.specimen-archive .meta dt{
  font-size: 8px;
  letter-spacing: 0.16em;
  color: rgba(170, 214, 206, 0.4);
  white-space: nowrap;
}

.specimen-archive .meta dd{
  margin: 5px 0 0;
  font-size: 10.5px;
  line-height: 1.5;
  color: rgba(225, 250, 245, 0.8);
  letter-spacing: 0.02em;
}

.specimen-archive .chips{
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 15px 0 0;
}

.specimen-archive .chip{
  padding: 4px 8px 3px;
  border: 1px solid rgba(var(--accent-rgb), 0.2);
  background: rgba(var(--accent-rgb), 0.05);
  font-size: 8.5px;
  letter-spacing: 0.1em;
  color: rgba(210, 248, 240, 0.68);
  white-space: nowrap;
}

.specimen-archive .detail__note{
  position: relative;
  margin: 15px 0 0;
  padding: 2px 0 2px 11px;
  border-left: 1px solid rgba(var(--accent-rgb), 0.45);
  font-size: 10px;
  line-height: 1.85;
  color: rgba(196, 232, 225, 0.52);
  letter-spacing: 0.01em;
}

.specimen-archive .detail__foot{
  margin-top: 16px;
  padding-top: 9px;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
  font-size: 7.5px;
  letter-spacing: 0.2em;
  color: rgba(160, 205, 198, 0.28);
}


.specimen-archive .card{width:var(--cw);height:var(--ch);max-width:none}.specimen-archive .card.is-open{width:calc(var(--cw) + var(--dw))}.specimen-archive .card__shell{background:linear-gradient(145deg,#b0b58b26,#1c2923e0);border-color:#d6c39377;backdrop-filter:blur(10px)}.specimen-archive .card__visual img{width:100%;height:100%;object-fit:cover}.specimen-archive .card__cover{background:none;border:0;color:inherit;text-align:left;pointer-events:auto;white-space:normal}.specimen-archive .card__name{display:block;font-size:28px}.specimen-archive .card__detail{background:#26332bec}.specimen-archive .card__cover span{display:block}.specimen-archive .card__head{display:flex!important}.specimen-archive .detail__close{font-size:22px}.specimen-visit{margin-top:30px;color:#eee4c9;border-color:#b8a475}.specimen-controls{display:flex;justify-content:center;align-items:center;gap:28px;padding:18px}.specimen-controls button{width:48px;height:44px;color:#e0c796;border-color:#9b966c}.specimen-count{font:12px var(--mono)}.specimen-hint{text-align:center;color:#aeb8a2;font-size:10px;padding-bottom:18px}.specimen-archive .card__scan{display:none}
@media(max-width:760px){.specimen-archive{--cw:min(72vw,290px);--ch:440px}.specimen-stage{height:540px}.specimen-stage.is-expanded{height:700px}.specimen-archive .card.is-open{width:min(85vw,400px);height:630px}.specimen-archive .is-open .card__cover{height:45%;width:100%}.specimen-archive .is-open .card__detail{left:0;top:45%;padding:18px;border-left:0;border-top:1px solid #a7a67a77}.specimen-archive .card__shell{backdrop-filter:none}.specimen-archive .card__name{font-size:24px}.specimen-archive .detail__title{font-size:22px}}
@media(prefers-reduced-motion:reduce){.specimen-archive *{transition:none!important;animation:none!important}}.motion-off .specimen-archive *{transition:none!important;animation:none!important}
.record-page #main>article{max-width:1120px;margin:auto}.record-page .article-layout{grid-template-columns:170px minmax(0,1fr);gap:24px}.record-page .article-layout.without-toc,.record-page .article-layout:has(>.reading-aside[hidden]){grid-template-columns:minmax(0,1fr)}.record-page .article-body{padding:clamp(24px,3vw,48px)!important}.record-page .prose{font-size:17px;line-height:2}.article-image-open{display:block;max-width:100%;border:0;padding:0;margin:24px auto;background:none;cursor:zoom-in}.record-page .prose img{display:block;margin:24px auto;box-shadow:0 14px 30px -15px #202e2855;border-radius:8px;transition:transform .4s,box-shadow .4s}.record-page .prose img:hover{transform:translateY(-4px);box-shadow:0 22px 35px -16px #202e2877}.image-viewer{padding:45px 15px 15px;border:1px solid #9c9f80;background:#202b25;width:min(1200px,95vw);max-height:94dvh}.image-viewer::backdrop{background:#101911dc}.image-viewer>img{display:block;max-width:100%;max-height:80dvh;object-fit:contain;margin:auto}.image-viewer>button{position:absolute;top:6px;right:12px;font-size:25px;color:#eee4cf;border:0}.guest-reply{border:0;border-bottom:1px solid var(--line);font-size:11px;padding:4px 0;color:var(--accent)}.guestbook-children{padding-left:20px;border-left:1px solid var(--line);margin:15px 0 0}.guest-reply-state{font-size:12px;display:flex;gap:20px}.guest-reply-state button{border:0;color:var(--accent)}
@media(max-width:760px){.record-page .article-layout{display:block}.record-page .prose{font-size:16px}.record-page .article-body{padding:22px 18px!important}.guestbook-children{padding-left:12px}}
.specimen-archive .specimen-stage .card{transition:transform .62s var(--ease-out),opacity .62s,width .62s,height .62s}
.specimen-archive .specimen-stage.resetting .card{transition:none!important}
.specimen-archive .specimen-visit{background:#cdb682!important;color:#202c24!important;border:1px solid #dbc995!important;clip-path:none!important;opacity:1!important}
.specimen-archive .card__cover .card__desc{color:#e0e4d6}.specimen-archive .card__cover .card__body{padding-bottom:14px}
.article-image-open{width:100%}.article-image-open img{width:auto;max-width:100%;max-height:680px;height:auto}.image-viewer img{box-shadow:none!important}
