/* Long-form research rooms
   The archive shares reading mechanics. Subject pages author their own object,
   opening rhythm, and section cadence through the room classes below. */

/* Shared reading mechanics. These replace the identical 3.5 KB style block
   that used to be copied into every short research paper. */
.research-room *,
.research-room *::before,
.research-room *::after { box-sizing:border-box; }
.research-room .th-prose p { margin:0 0 18px; }
.research-room .th-prose strong { color:var(--text-1); font-weight:500; }
.research-room .th-prose em { color:var(--gold-bright); font-style:italic; }
.research-room .th-callout { padding:24px 28px; margin:28px 0; }
.research-room .th-callout-eye { margin-bottom:10px; color:var(--gold); font:700 10px/1.5 var(--font-mono); letter-spacing:.08em; }
.research-room .th-callout p { margin:0 0 12px; }
.research-room .th-callout p:last-child { margin-bottom:0; }
.research-room .th-mapping { margin:32px 0; overflow:hidden; border:1px solid var(--border-2); }
.research-room .th-mapping-row { display:grid; grid-template-columns:60px 1fr; align-items:start; padding:18px 22px; border-top:1px solid var(--border-1); }
.research-room .th-mapping-row:first-child { border-top:0; }
.research-room .th-mapping-num { font-size:26px; font-weight:300; line-height:1; }
.research-room .th-mapping-body { color:var(--text-2); font-size:14px; line-height:1.75; }
.research-room .th-mapping-body strong { display:inline-block; margin-right:6px; color:var(--gold-bright); font-weight:500; }
.research-room .th-mapping-body em { color:var(--text-1); font-style:normal; font-weight:400; }
.research-room .th-questions { margin:24px 0; padding:24px 28px; border-left:2px solid var(--gold); }
.research-room .th-questions ol { padding-left:24px; }
.research-room .th-questions li { margin-bottom:10px; color:var(--text-2); font-size:14px; line-height:1.85; }
.research-room .th-questions li:last-child { margin-bottom:0; }
.research-room .th-questions li strong { color:var(--gold-bright); font-weight:500; }
.research-room .tag { display:inline-block; margin-left:6px; padding:2px 7px; vertical-align:middle; color:var(--gold); border:1px solid var(--gold-deep); border-radius:999px; background:var(--gold-04); font:600 9px/1.4 var(--font-mono); letter-spacing:.08em; }
.research-room .tag.tv { color:var(--text-3); border-color:var(--border-3); background:transparent; }

body.research-room {
  --rr-ink: #08080d;
  --rr-wash: rgba(201,169,110,.045);
  --rr-line: rgba(201,169,110,.18);
  background:
    radial-gradient(circle at 82% 7%, var(--rr-wash), transparent 34rem),
    linear-gradient(180deg,var(--rr-ink),#08080d 42rem) !important;
  color: var(--text-1, rgba(255,255,255,.92));
  min-height: 100%;
}

.research-room .th-hero {
  max-width: 1040px;
  min-height: 470px;
  margin: 56px auto 70px;
  padding: 76px 40px 54px;
  display: grid;
  grid-template-columns: minmax(0,1.08fr) minmax(290px,.72fr);
  column-gap: clamp(42px,7vw,88px);
  align-content: center;
  text-align: left;
  border-bottom: 1px solid var(--rr-line);
}
.research-room .th-eyebrow { grid-column:1; margin: 0 0 18px; color: var(--gold); font: 500 12px/1.5 var(--font-mono); letter-spacing: .08em; }
.research-room .th-h1 { grid-column:1; max-width: 660px; margin: 0 0 24px; color:var(--text-1); font-size: clamp(43px,6vw,68px); line-height: 1.02; letter-spacing: -.035em; }
.research-room .th-h1 em { color: inherit; font-style: normal; }
.research-room .th-sub { grid-column:1; max-width: 660px; margin: 0; color: var(--text-2); font-size: 18px; line-height: 1.7; }
.research-room .th-member-strip { grid-column:1; justify-self: start; margin: 25px 0 0; padding: 8px 11px; color: var(--lavender-bright); border: 1px solid var(--lavender-deep); background: var(--lavender-04); font: 500 12px/1.5 var(--font-mono); letter-spacing: .03em; }
.research-room .th-member-strip strong { color: var(--lavender-bright); }
.research-room .th-hero > p:not(.th-sub),
.research-room .th-hero > .vn9strip,
.research-room .th-hero > .vn9-gloss-hint,
.research-room .th-hero > .tag { grid-column:1; justify-self:start; max-width:660px; margin:14px 0 0 !important; color:var(--text-3) !important; font-size:13px; line-height:1.65; }
.research-room .th-hero > .tag { color:var(--gold) !important; }
.research-room .th-hero .vn9-gloss-hint a { color:var(--gold) !important; }
.research-object { grid-column:2; grid-row:1 / span 20; align-self: stretch; min-height: 300px; display: grid; align-content: center; gap: 24px; margin:0; padding: 28px; color: var(--gold-bright); border: 1px solid var(--rr-line); border-radius: var(--radius-xl); background: rgba(8,8,13,.62); }
.research-object svg { width: 100%; max-height: 270px; display: block; }
.research-object figcaption { color: var(--text-3); font-size: 13px; line-height: 1.55; text-align: center; }
.research-object .line { fill: none; stroke: var(--gold); stroke-width: 1.35; vector-effect: non-scaling-stroke; }
.research-object .soft { fill: var(--gold-08); stroke: var(--gold-deep); stroke-width: 1; vector-effect: non-scaling-stroke; }
.research-object .mark { fill: var(--gold-bright); }
.research-object text { fill: var(--text-2); font: 12px var(--font-mono); }

.research-room .th-section { max-width: 820px; margin: 0 auto 76px; padding: 0 40px; }
.research-room .th-section:nth-of-type(4n+2) { transform: translateX(-42px); }
.research-room .th-section:nth-of-type(4n+4) { transform: translateX(42px); }
.research-room .th-section-eyebrow { color: var(--gold-deep); font: 500 12px/1.5 var(--font-mono); letter-spacing: .07em; }
.research-room .th-section-eyebrow { margin-bottom:14px; }
.research-room .th-h2 { max-width: 680px; margin:0 0 24px; color:var(--text-1); font-size: clamp(28px,4vw,38px); line-height: 1.17; letter-spacing: -.02em; }
.research-room .th-h2 em { color: inherit; font-style: normal; }
.research-room .th-prose { color:var(--text-2); font-size: 16px; line-height: 1.82; }
.research-room .th-divider { width:100%; max-width: 740px; height:1px; margin: 60px auto; background: var(--rr-line); }
.research-room .th-callout { border-width: 0 0 0 2px; border-radius: 0; border-color: var(--gold); background: var(--gold-04); }
.research-room .th-mapping { border-radius: 0; border-inline: 0; }
.research-room .th-mapping-num { color: var(--gold); font-family: var(--font-mono); }
.research-room .th-questions { border-left-color: var(--gold); background: var(--gold-04); }

.rr-cosmos { --rr-ink:#070a12; --rr-wash:rgba(80,144,184,.055); }
.rr-devotion { --rr-ink:#0b0711; --rr-wash:rgba(168,96,144,.055); }
.rr-myth { --rr-ink:#0d0908; --rr-wash:rgba(196,112,80,.045); }
.rr-modern { --rr-ink:#09091a; --rr-wash:rgba(165,139,199,.05); }
.rr-calendar { --rr-ink:#080b11; --rr-wash:rgba(80,144,184,.045); }

.object-nine { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; width:min(280px,100%); margin:auto; }
.object-nine i { width:13px; aspect-ratio:1; place-self:center; border:1px solid var(--gold); border-radius:50%; box-shadow:0 0 0 8px var(--gold-04); }
.object-spectrum { display:grid; gap:15px; }
.object-spectrum span { display:grid; grid-template-columns:70px 1fr; gap:15px; align-items:center; color:var(--text-2); font:12px/1.4 var(--font-mono); }
.object-spectrum i { display:block; height:4px; background:var(--gold); }
.object-spectrum span:nth-child(1) i{opacity:.3}.object-spectrum span:nth-child(2) i{opacity:.62}.object-spectrum span:nth-child(3) i{opacity:1}
.object-axes { display:grid; grid-template-columns:repeat(2,1fr); gap:10px; }
.object-axes span { min-height:82px; display:grid; place-items:center; border:1px solid var(--gold-deep); color:var(--gold-bright); font:14px/1.3 var(--font-mono); }
.object-centers { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
.object-centers span { min-height:100px; display:grid; place-items:center; border:1px solid var(--gold-deep); font:12px/1.35 var(--font-mono); text-align:center; }
.object-centers .gut{border-color:var(--gut);color:var(--gut)}.object-centers .heart{border-color:var(--heart);color:var(--heart)}.object-centers .head{border-color:var(--head);color:var(--head)}
.object-mewa { width:min(260px,100%); aspect-ratio:1; display:grid; grid-template-columns:repeat(3,1fr); margin:auto; }
.object-mewa span { display:grid; place-items:center; border:1px solid var(--gold-14); color:var(--gold-bright); font:21px/1 var(--font-mono); }
.object-staff { position:relative; height:190px; border-left:1px solid var(--gold); margin-left:50%; }
.object-staff i { position:absolute; left:-55px; width:110px; height:1px; background:var(--gold-deep); top:var(--y); }
.object-staff i::after { content:''; position:absolute; left:calc(var(--x) * 1%); top:-4px; width:8px; aspect-ratio:1; border:1px solid var(--gold); border-radius:50%; background:var(--rr-ink); }
.object-tree { position:relative; width:260px; height:250px; margin:auto; }
.object-tree::before { content:''; position:absolute; width:1px; height:100%; left:50%; background:var(--gold-deep); }
.object-tree i { position:absolute; width:10px; aspect-ratio:1; border:1px solid var(--gold); border-radius:50%; left:var(--x); top:var(--y); }
.object-tree i::after { content:''; position:absolute; height:1px; width:var(--w); right:5px; top:4px; background:var(--gold-deep); transform-origin:right; transform:rotate(var(--r)); }

/* Process papers */
.object-register { display:grid; gap:9px; }
.object-register span { display:grid; grid-template-columns:34px 1fr; gap:12px; align-items:center; min-height:38px; color:var(--text-2); font:12px/1.3 var(--font-mono); }
.object-register b { display:grid; place-items:center; width:30px; aspect-ratio:1; border:1px solid var(--gold-deep); border-radius:50%; color:var(--gold-bright); font-weight:500; }
.object-register i { height:1px; background:linear-gradient(90deg,var(--gold),transparent); }
.object-funnel { display:grid; gap:10px; justify-items:center; }
.object-funnel span { width:var(--w); min-height:35px; display:grid; place-items:center; border:1px solid var(--gold-deep); color:var(--text-2); font:11px/1.3 var(--font-mono); }
.object-transmission { display:grid; grid-template-columns:1fr auto 1fr auto 1fr; gap:10px; align-items:center; color:var(--text-2); font:11px/1.35 var(--font-mono); text-align:center; }
.object-transmission span { min-height:76px; display:grid; place-items:center; padding:8px; border:1px solid var(--gold-deep); }
.object-transmission i { width:20px; height:1px; background:var(--gold); }
.object-ladder { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; }
.object-ladder span { min-height:54px; display:grid; place-items:center; border:1px solid var(--gold-14); color:var(--gold-bright); font:18px/1 var(--font-mono); }
.object-triangle { position:relative; width:min(270px,100%); aspect-ratio:1.15; margin:auto; }
.object-triangle::before { content:''; position:absolute; inset:14% 11% 11%; clip-path:polygon(50% 0,100% 100%,0 100%,50% 0); background:var(--gold-deep); }
.object-triangle::after { content:''; position:absolute; inset:calc(14% + 1px) calc(11% + 2px) calc(11% + 2px); clip-path:polygon(50% 0,100% 100%,0 100%,50% 0); background:var(--rr-ink); }
.object-triangle span { position:absolute; z-index:1; width:84px; min-height:42px; display:grid; place-items:center; padding:5px; color:var(--text-2); border:1px solid var(--gold-deep); background:var(--rr-ink); font:11px/1.25 var(--font-mono); text-align:center; }
.object-triangle span:nth-child(1){left:50%;top:0;transform:translateX(-50%)}
.object-triangle span:nth-child(2){left:0;bottom:0}.object-triangle span:nth-child(3){right:0;bottom:0}
.object-proof { display:grid; grid-template-columns:repeat(2,1fr); gap:10px; }
.object-proof span { min-height:78px; display:grid; place-items:center; padding:10px; color:var(--text-2); border:1px solid var(--gold-deep); font:11px/1.4 var(--font-mono); text-align:center; }
.object-board { display:grid; grid-template-columns:repeat(3,1fr); width:min(270px,100%); aspect-ratio:1; margin:auto; }
.object-board span { display:grid; place-items:center; border:1px solid var(--gold-14); color:var(--gold-bright); font:12px/1.3 var(--font-mono); text-align:center; }
.object-timeline { position:relative; display:grid; grid-template-columns:repeat(3,1fr); gap:22px; padding-top:35px; }
.object-timeline::before { content:''; position:absolute; top:14px; left:10%; right:10%; height:1px; background:var(--gold-deep); }
.object-timeline span { position:relative; color:var(--text-2); font:11px/1.4 var(--font-mono); text-align:center; }
.object-timeline span::before { content:''; position:absolute; top:-26px; left:50%; width:9px; aspect-ratio:1; border:1px solid var(--gold); border-radius:50%; background:var(--rr-ink); transform:translateX(-50%); }
.object-sources { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; }
.object-sources span { min-height:110px; display:grid; align-content:center; gap:7px; padding:10px; border:1px solid var(--gold-deep); color:var(--text-2); font:11px/1.4 var(--font-mono); text-align:center; }
.object-sources b { color:var(--gold-bright); font-weight:500; }
.object-palaces { display:grid; grid-template-columns:repeat(4,1fr); width:min(280px,100%); margin:auto; }
.object-palaces span { aspect-ratio:1; display:grid; place-items:center; border:1px solid var(--gold-14); color:var(--gold-bright); font:11px/1.2 var(--font-mono); text-align:center; }
.object-choirs { display:grid; gap:10px; }
.object-choirs span { display:grid; grid-template-columns:72px repeat(3,1fr); gap:7px; align-items:center; color:var(--text-3); font:10px/1.25 var(--font-mono); }
.object-choirs b { color:var(--gold-bright); font-weight:500; }
.object-choirs i { min-height:32px; display:grid; place-items:center; border:1px solid var(--gold-deep); font-style:normal; }
.object-choirs .gut { color:var(--gut); border-color:var(--gut); }
.object-choirs .heart { color:var(--heart); border-color:var(--heart); }
.object-choirs .head { color:var(--head); border-color:var(--head); }

/* The MBTI monograph uses its established tabbed dossier rather than the short-paper classes. */
.research-room.rr-mbti .topcard { border-color:var(--rr-line); background:rgba(8,8,13,.68); }
.research-room.rr-mbti .tc-eye,.research-room.rr-mbti .ch-eye { color:var(--gold); letter-spacing:.07em; }
.research-room.rr-mbti .tc-primary em { color:inherit; font-style:normal; }
.research-room.rr-mbti .tc-pills .tc-pill:first-child { color:var(--lavender-bright); border-color:var(--lavender-deep); background:var(--lavender-04); }
.research-room.rr-mbti .ch { border-left:1px solid var(--rr-line); padding-left:clamp(22px,4vw,44px); }

@media(max-width:860px){
  .research-room .th-hero{grid-template-columns:1fr;min-height:0;margin-top:30px;padding:55px 24px 42px;gap:0}
  .research-object{grid-column:1;grid-row:auto;margin-top:38px;min-height:250px}.research-room .th-member-strip{margin-top:22px}
  .research-room .th-section,.research-room .th-section:nth-of-type(n){transform:none;padding-inline:24px}
}

@media(max-width:560px){
  .object-transmission{grid-template-columns:1fr;}.object-transmission i{width:1px;height:16px;margin:auto}
  .object-sources{grid-template-columns:1fr}.object-sources span{min-height:70px}
  .object-palaces{grid-template-columns:repeat(3,1fr)}
  .object-choirs span{grid-template-columns:1fr repeat(3,1fr)}
}

@media print{
  .research-room{background:#fff!important}.research-object{break-inside:avoid;box-shadow:none}.research-room .th-section:nth-of-type(n){transform:none}
}
