/* research.dreamlab.institute — layered on the institute's styles.css */
.r-hero { position: relative; padding: clamp(6.5rem, 14vh, 9rem) var(--pad) clamp(2.5rem, 6vh, 4rem); background: var(--pine-deep); color: var(--paper); overflow: hidden; }
.r-hero::after { content: ""; position: absolute; inset: 0; background: repeating-radial-gradient(ellipse at 80% 120%, transparent 0 38px, rgba(201,138,93,.10) 39px 40px); pointer-events: none; }
.r-hero__inner { position: relative; z-index: 1; max-width: 920px; margin: 0 auto; }
.r-hero .hero__eyebrow { color: var(--copper-lt); }
.r-hero__title { font-family: var(--serif); font-weight: 500; font-size: clamp(2.1rem, 1.4rem + 3.2vw, 3.9rem); line-height: 1.06; letter-spacing: -0.015em; margin: 0 0 1rem; }
.r-hero__title em { color: var(--copper-lt); }
.r-hero__lede { font-size: 1.12rem; max-width: 60ch; color: color-mix(in srgb, var(--paper) 82%, transparent); margin: 0 0 1.6rem; }
.r-share { display: flex; gap: .7rem; flex-wrap: wrap; }
.r-share .btn--solid { background: var(--copper); }
.r-share .btn--ghost { color: var(--paper); border-color: rgba(246,242,233,.3); }
.r-share .btn--ghost:hover { border-color: var(--paper); }

.r-main { max-width: 920px; margin: 0 auto; padding: clamp(2rem, 5vh, 3.5rem) var(--pad) 4rem; }
.r-article { overflow-wrap: anywhere; }
.r-article h2 { font-family: var(--serif); font-weight: 500; font-size: clamp(1.5rem, 1.2rem + 1.2vw, 2.1rem); color: var(--pine); margin: 3rem 0 .8rem; padding-top: 1.2rem; border-top: 1px solid var(--line); }
.r-article h3 { font-family: var(--serif); font-weight: 600; font-size: 1.25rem; margin: 2rem 0 .5rem; }
.r-article h3 a { color: var(--pine); border-bottom: 1px solid var(--copper-lt); }
.r-article a { color: var(--moss); text-decoration: underline; text-decoration-color: color-mix(in srgb, var(--moss) 35%, transparent); text-underline-offset: 2px; }
.r-article a:hover { color: var(--copper); }
.r-article blockquote { margin: 1.2rem 0; padding: 1.1rem 1.4rem; background: var(--paper-2); border-left: 3px solid var(--copper); border-radius: 0 var(--r) var(--r) 0; font-family: var(--serif); font-size: 1.08rem; }
.r-article blockquote p { margin: 0; }
.r-article code { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .78em; padding: .12em .5em; border-radius: 100px; background: color-mix(in srgb, var(--moss) 12%, transparent); color: var(--pine); white-space: nowrap; }
.r-article hr { border: 0; border-top: 1px solid var(--line); margin: 2.5rem 0; }
.table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; margin: 1rem 0 1.6rem; border: 1px solid var(--line-soft); border-radius: var(--r); background: #fbf9f4; }
.table-wrap table { border-collapse: collapse; width: 100%; min-width: 560px; font-size: .92rem; }
.table-wrap th { text-align: left; font-size: .74rem; letter-spacing: .08em; text-transform: uppercase; color: var(--ink-soft); background: var(--paper-2); }
.table-wrap th, .table-wrap td { padding: .65rem .85rem; border-bottom: 1px solid var(--line-soft); vertical-align: top; }
.table-wrap tr:last-child td { border-bottom: 0; }

.r-short { margin: 0 0 2.5rem; display: grid; grid-template-columns: minmax(0, 300px) 1fr; gap: 1.6rem; align-items: center; padding: 1.2rem; background: var(--pine); color: var(--paper); border-radius: calc(var(--r) * 1.4); }
.r-short video { width: 100%; aspect-ratio: 9 / 16; border-radius: var(--r); background: #000; display: block; }
.r-short h2 { font-family: var(--serif); font-weight: 500; font-size: 1.6rem; margin: 0 0 .5rem; color: var(--paper); border: 0; padding: 0; }
.r-short p { color: color-mix(in srgb, var(--paper) 80%, transparent); margin: 0 0 1rem; }
.r-short .kicker { font-size: .74rem; letter-spacing: .14em; text-transform: uppercase; color: var(--copper-lt); font-weight: 700; }
.r-short a { color: var(--copper-lt); }
@media (max-width: 640px) { .r-short { grid-template-columns: 1fr; } .r-short video { max-height: 78vh; } }

.r-badge { display: inline-block; margin-left: .45rem; font-family: var(--sans); font-size: .66rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; padding: .2em .6em; border-radius: 100px; background: var(--copper); color: var(--paper); vertical-align: middle; text-decoration: none !important; }
.r-foot { text-align: center; padding: 2rem var(--pad) 3rem; color: var(--ink-soft); font-size: .88rem; border-top: 1px solid var(--line); }
.r-foot a { color: var(--moss); }
.r-toast { position: fixed; left: 50%; bottom: 1.5rem; transform: translateX(-50%); background: var(--ink); color: var(--paper); padding: .6rem 1.1rem; border-radius: 100px; font-size: .9rem; z-index: 50; }
.r-short[hidden] { display: none; }
.table-wrap th { white-space: nowrap; }
