/* Reusable nine-slice paper: edges stay 48px while the writing area grows. */
.parchment-surface {
  position: relative;
  isolation: isolate;
  filter: drop-shadow(0 20px 26px #07151266);
}
.parchment-surface::before {
  content: "";
  position: absolute;
  z-index: -1;
  pointer-events: none;
  border-image: none;
  clip-path: none;
  box-shadow: none;
}
.ink-divider {
  display: block;
  width: 100%;
  height: 8px;
  object-fit: fill;
  margin: 30px 0 0;
  opacity: 0.8;
}
.parchment-points {
  border-top: 0;
  padding-top: 24px;
  margin-top: 0;
}
.parchment-cta {
  isolation: isolate;
  border: 0;
  background: none;
  font:
    800 15px / 1.4 "Plus Jakarta Sans",
    sans-serif;
  cursor: pointer;
}
.parchment-cta::before {
  content: "";
  position: absolute;
  z-index: -1;
  transition: filter 0.18s;
}

/* Shared readable copper-button typography and chevron. */
.hero-copy .invite,
.hero-copy .invite:hover,
.parchment-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: var(--lorbo-body);
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: 0.045em;
  text-transform: uppercase;
  color: #160e08;
  text-shadow: none;
}
.hero-copy .invite .invite-label,
.hero-copy .invite:hover .invite-label,
.parchment-cta .invite-label {
  font: inherit;
  white-space: nowrap;
}
.hero-copy .invite svg,
.hero-copy .invite:hover svg,
.parchment-cta svg {
  display: block;
  flex: 0 0 18px;
  width: 18px;
  height: 18px;
  stroke-width: 2.6;
  stroke-linecap: round;
  stroke-linejoin: round;
  color: #160e08;
  transform: none;
}
@media (max-width: 700px) {
  .hero-copy .invite,
  .hero-copy .invite:hover {
    letter-spacing: 0.025em;
  }
  .parchment-cta {
    font-size: 12px;
    letter-spacing: 0.015em;
    gap: 8px;
  }
}

/* Match the hero copper pill proportions; use a shorter label. */
@media (max-width: 700px) {
  .parchment-cta {
    width: 190px;
    height: 60px;
    min-height: 60px;
    padding: 0 16px;
  }
}

/* Option two: introduction beside a two-by-two proof grid. */
.parchment-section {
  left: 24px;
  transform: none;
  width: min(1160px, calc(100% - 48px));
  padding: 80px 48px;
  display: grid;
  align-items: start;
}
.parchment-section h2 {
  font-size: 40px;
  max-width: none;
  text-wrap: balance;
}
.parchment-actions {
  text-align: left;
  margin-top: 40px;
}
.parchment-section > .ink-divider {
  width: 8px;
  height: 100%;
  min-height: 400px;
  margin: 0;
  object-fit: fill;
  writing-mode: vertical-lr;
  opacity: 0.7;
}
.parchment-points {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 64px 28px;
  margin: 0;
  padding: 0;
  border: 0;
}
@media (max-width: 1000px) {
  .parchment-section {
    display: block;
    padding: 60px 36px;
    width: min(960px, calc(100% - 48px));
  }
  .parchment-section h2 {
    font-size: 40px;
    max-width: 800px;
  }
  .parchment-section > .ink-divider {
    width: 100%;
    height: 8px;
    min-height: 0;
    margin: 30px 0;
  }
  .parchment-points {
    gap: 30px;
  }
}
@media (max-width: 600px) {
  .parchment-section {
    padding: 44px 24px;
  }
  .parchment-section h2 {
    font-size: 32px;
  }
  .parchment-points {
    grid-template-columns: 1fr;
    gap: 28px;
  }
}

.parchment-section > .ink-divider {
  content: url(lorbo-ink-divider-vertical.svg);
}
@media (max-width: 1000px) {
  .parchment-section > .ink-divider {
    content: url(lorbo-ink-divider.svg?v=2);
  }
}

/* More space within each group, as well as around the sheet. */
.parchment-section h2 {
  margin-bottom: 32px;
}

/* Floating controls stay in view without covering scroll or click targets. */
.site-frame-top {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: var(--lorbo-layer-header);
  pointer-events: none;
}
.site-frame-top .medallion-home,
.site-frame-top .motion-control {
  pointer-events: auto;
}

.primary-nav {
  position: absolute;
  left: 50%;
  top: 78px;
  transform: translate(-50%, -50%);
  display: flex;
  align-items: center;
  white-space: nowrap;
  pointer-events: auto;
}
.primary-nav button {
  border: 0;
  background: none;
  padding: 12px;
  color: #fff5e5;
  font:
    700 14px "Plus Jakarta Sans",
    sans-serif;
  text-shadow: 0 2px 5px #13201b;
}
.primary-nav button:hover:not(:disabled) {
  color: var(--lorbo-candle);
}
.primary-nav button:disabled {
  opacity: 0.6;
  cursor: default;
}
.site-frame-top .medallion-home {
  z-index: 2;
}
.parchment-track {
  position: absolute;
  left: 0;
  right: 0;
  height: 1500px;
  pointer-events: none;
}
.parchment-track .parchment-section {
  position: sticky;
  pointer-events: auto;
  margin: 0 0 0 24px;
  left: auto;
}
@media (max-width: 700px) {
  .primary-nav {
    top: 112px;
  }
  .site-frame-top .header-actions {
    top: 50px;
  }
}

.primary-nav button {
  text-transform: none;
  font-variant: normal;
}

.primary-nav button {
  font-family: var(--lorbo-heading);
  font-size: 23px;
  font-weight: 600;
  letter-spacing: 0;
}
@media (max-width: 700px) {
  .primary-nav button {
    font-size: 17px;
  }
}

/* Optical alignment to the inset copper face, not just the font line box. */
.primary-nav {
  gap: 208px;
}
.hero-copy .invite .invite-label,
.hero-copy .invite:hover .invite-label,
.parchment-cta .invite-label {
  position: relative;
  line-height: 1;
  display: block;
}
.hero-copy .invite svg,
.hero-copy .invite:hover svg,
.parchment-cta svg {
  position: relative;
  top: -1px;
}
@media (max-width: 700px) {
  .primary-nav {
    gap: 36px;
  }
}

/* Quill-colored ribbon straddles the paper's lower edge. */
.parchment-ribbon {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  width: 800px;
  max-width: calc(100% + 32px);
  height: 140px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 90px 24px;
  isolation: isolate;
  pointer-events: none;
}
.parchment-ribbon::before {
  content: "";
  position: absolute;
  z-index: -1;
  filter: drop-shadow(0 5px 6px #170c2640);
}
.parchment-ribbon h2 {
  margin: 0;
  font:
    700 32px / 1.15 "Cinzel Decorative",
    Georgia,
    serif;
  letter-spacing: 0.01em;
  color: #fff0cc;
  text-shadow: 0 2px 3px #21122e;
  text-wrap: nowrap;
}
@media (max-width: 700px) {
  .parchment-ribbon {
    height: 80px;
    padding: 0 34px 14px;
  }
  .parchment-ribbon h2 {
    font-size: clamp(16px, 4vw, 26px);
  }
}

/* Soft navigation scrim fades into the scene without a hard bar edge. */
.site-frame-top {
  isolation: isolate;
}
.site-frame-top::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  height: 178px;
  background: linear-gradient(
    to bottom,
    rgba(8, 17, 19, 0.76) 0%,
    rgba(8, 17, 19, 0.62) 48%,
    rgba(8, 17, 19, 0.28) 78%,
    rgba(8, 17, 19, 0) 100%
  );
  z-index: -1;
  pointer-events: none;
}
.parchment-ribbon {
  padding-bottom: 12px;
}
@media (max-width: 700px) {
  .site-frame-top::before {
    height: 170px;
  }
  .parchment-ribbon {
    padding-bottom: 7px;
  }
}

/* Ink impression button belongs to the paper; bronze remains in the hero. */
.parchment-cta::before {
  border-radius: 0;
  background: none;
}
.parchment-cta .invite-label,
.parchment-cta svg {
  color: #fff1d8;
  text-shadow: none;
  -webkit-text-stroke: 0;
  top: 0;
}
.parchment-cta:focus-visible {
  outline: 2px solid #60432d;
  outline-offset: 3px;
  border-radius: 12px;
}
@media (max-width: 1000px) {
  .parchment-summary #what-title {
    font-size: 42px;
  }
}

.parchment-points .proof-ink {
  width: 88px;
  height: 88px;
}
/* Selected quiet purple-blue ink spill. Live label remains accessible. */
.parchment-cta {
  padding: 0 38px 0 22px;
  gap: 10px;
}
.parchment-cta::before {
  background-size: contain;
  filter: none;
}
.parchment-cta:hover::before {
  filter: brightness(1.15);
}
@media (max-width: 600px) {
  .parchment-cta {
    max-width: 100%;
  }
}

/* Open two-column layout with consistent proof-point rhythm. */
.parchment-section > .ink-divider {
  display: none;
}
.parchment-section {
  grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
  column-gap: 56px;
}
.parchment-points {
  column-gap: 32px;
}
.parchment-points h3 {
  text-wrap: balance;
}
.parchment-points p {
  hyphens: none;
}
@media (max-width: 600px) {
  .parchment-points h3 {
    min-height: 0;
  }
}
/* Two-size editorial hierarchy within the parchment. */
.parchment-section .parchment-intro,
.parchment-points h3,
.parchment-points p {
  font-size: 17px;
  line-height: 1.6;
}
.parchment-points h3 {
  min-height: 0;
  margin: 0 0 8px;
  font-weight: 700;
  text-wrap: normal;
}
.parchment-points p {
  margin: 0;
  text-wrap: pretty;
}
.parchment-points .proof-ink {
  margin-bottom: 16px;
}
/* Broad, heavy capitals remain legible on textured copper. */
.hero-copy .invite,
.hero-copy .invite:hover {
  font-family: "Arial Black", "Arial", sans-serif;
  font-weight: 900;
  text-transform: uppercase;
}
.hero-copy .invite .invite-label,
.hero-copy .invite:hover .invite-label {
  font-family: inherit;
  font-size: inherit;
}
.hero-copy .invite,
.hero-copy .invite:hover {
  width: 300px;
}
.hero-copy .invite::before {
  background: none;
  border-radius: 0;
  border-style: solid;
  border-color: transparent;
  border-image-repeat: stretch;
}
.hero-copy .invite svg {
  top: 0;
}
@media (max-width: 700px) {
  .hero-copy .invite,
  .hero-copy .invite:hover {
    width: 260px;
  }
}
.hero-copy .invite::before {
  border-image-source: url(lorbo-bronze-frame.webp);
  border-image-slice: 0 16.4355% fill;
}
.parchment-cta::before {
  background-image: none;
}
.hero-copy .invite,
.hero-copy .invite:hover {
  min-width: 0;
  width: max-content;
  height: 64px;
  min-height: 64px;
  padding: 0 24px;
  gap: 10px;
}
.hero-copy .invite::before {
  box-sizing: border-box;
  inset: 0;
  width: 100%;
  height: 100%;
  border-width: 0 35px;
  border-image-width: 0 35px;
}
@media (max-width: 700px) {
  .hero-copy .invite,
  .hero-copy .invite:hover {
    min-width: 0;
    width: max-content;
    height: 60px;
    min-height: 60px;
    padding: 0 22px;
  }
}
.parchment-cta::before {
  inset: -6px -12px;
  width: calc(100% + 24px);
  height: calc(100% + 12px);
}
.hero-copy .invite,
.hero-copy .invite:hover {
  font-size: 18px;
  letter-spacing: 0.025em;
}
.hero-copy .invite .invite-label,
.hero-copy .invite:hover .invite-label {
  color: #100c09;
  text-shadow: 0 1px 0 rgba(255, 231, 184, 0.85);
  -webkit-text-stroke: 0;
  font-weight: 900;
  line-height: 1.15;
}
.hero-copy .invite svg {
  color: #100c09;
  filter: none;
  stroke-width: 2.7;
}
@media (max-width: 700px) {
  .hero-copy .invite,
  .hero-copy .invite:hover {
    font-size: 16px;
  }
}
.hero-copy .hero-facts,
.hero-copy .hero-facts span {
  font-family: var(--lorbo-heading);
  font-weight: 400;
}

/* Earlier entrance, with scroll motion supplied by the shared hero renderer. */
.hero-copy .hero-facts {
  padding-bottom: 12px;
  line-height: 1;
}
@media (max-width: 700px) {
  .hero-copy .hero-facts {
    padding-bottom: 5px;
  }
}

/* One compositor-owned scroll update; reserve header clearance after drift. */
.parchment-track {
  visibility: visible;
  opacity: 0;
  will-change: transform, opacity;
  transition: none;
}
.glass-title,
.hero-copy .definition > span,
.hero-copy .invite {
  transition-property: color, background, box-shadow;
}
/* Continuous paper texture avoids subpixel seams at nine-slice joins. */
.parchment-surface::before {
  border-image: none;
}
/* Fine bronze rule connects the navigation behind the medallion. */
.primary-nav::before {
  content: "";
  position: absolute;
  left: -40px;
  right: -40px;
  top: calc(100% + 2px);
  height: 2px;
  pointer-events: none;
  z-index: -1;
  background: var(--lorbo-bronze-rule);
  box-shadow: var(--lorbo-bronze-rule-shadow);
  opacity: 0.8;
}
.primary-nav::after {
  content: "";
  position: absolute;
  left: -30px;
  right: -30px;
  top: calc(100% + 2px);
  height: 1px;
  pointer-events: none;
  z-index: -1;
  background: linear-gradient(
    90deg,
    transparent,
    #f6d7a24d 25%,
    #f6d7a270 50%,
    #f6d7a24d 75%,
    transparent
  );
}
@media (max-width: 700px) {
  .primary-nav::before {
    left: -20px;
    right: -20px;
  }
  .primary-nav::after {
    left: -12px;
    right: -12px;
  }
}
@media (min-width: 1001px) {
  .parchment-section {
    padding-left: 76px;
    grid-template-columns: minmax(0, 1.8fr) minmax(0, 3fr);
    column-gap: 64px;
  }
}

/* Start the parchment lower, at its intended approach to the sticky nav. */
.parchment-track {
  top: calc(100svh + 120px);
}
@media (max-width: 700px) {
  .parchment-track {
    top: calc(100svh + 156px);
  }
}

/* Ribbon overlaps the top edge, with room above the reading columns. */
.parchment-ribbon {
  top: -66px;
  bottom: auto;
}
.parchment-track .parchment-section {
  padding-top: 112px;
}
@media (max-width: 700px) {
  .parchment-ribbon {
    top: -38px;
    bottom: auto;
  }
  .parchment-track .parchment-section {
    padding-top: 76px;
  }
}

/* Keep the top-mounted ribbon clear of the sticky navigation. */
.parchment-track .parchment-section {
  top: 400px;
}
@media (max-width: 700px) {
  .parchment-track .parchment-section {
    top: 396px;
  }
}

.parchment-track .parchment-section {
  padding-bottom: 170px;
}
.parchment-section > .parchment-ribbon {
  top: -34px;
}
@media (max-width: 700px) {
  .parchment-track .parchment-section {
    padding-bottom: 100px;
  }
  .parchment-section > .parchment-ribbon {
    top: -18px;
  }
}

.parchment-summary #what-title {
  font-size: 44px;
}
@media (max-width: 600px) {
  .parchment-summary #what-title {
    font-size: 37px;
  }
}

.parchment-cta {
  width: 340px;
  height: 112px;
  min-height: 112px;
  font-size: 18px;
  max-width: 100%;
}
@media (max-width: 600px) {
  .parchment-cta {
    width: 300px;
    height: 100px;
    min-height: 100px;
    font-size: 16px;
  }
}

.parchment-cta {
  position: relative;
  left: -14px;
}

/* Match the 24px clearance below the navigation medallion. */
@media (min-width: 801px) {
  .parchment-track .parchment-section {
    top: 298px;
  }
}

/* Smaller screens recover the header space while scrolling down. */
@media (max-width: 1799px) {
  header.site-frame-top {
    transition:
      transform 0.25s ease,
      opacity 0.2s ease,
      visibility 0s;
    will-change: transform;
  }
  /* Retracted, the header stays in the tab order; focusing it brings it back. */
  header.site-frame-top.nav-retracted {
    transform: translateY(-190px);
    opacity: 0;
    transition:
      transform 0.25s ease,
      opacity 0.2s ease,
      visibility 0s 0.25s;
  }
  header.site-frame-top.nav-retracted .primary-nav,
  header.site-frame-top.nav-retracted .medallion-home {
    pointer-events: none;
  }
}
@media (min-width: 801px) and (max-width: 1799px) {
  .parchment-track .parchment-section {
    top: 162px;
  }
}
@media (prefers-reduced-motion: reduce) {
  header.site-frame-top,
  header.site-frame-top.nav-retracted {
    transition: none;
  }
}
