main { display: block; position: relative; }
main:focus { outline: none; }

.hero {
  position: relative;
  overflow-x: clip;
  padding-block: clamp(2.5rem, 6vw, 5rem) var(--section);
}
.hero__numeral {
  position: absolute;
  inset-block-start: clamp(0.5rem, 3vw, 2rem);
  inset-inline-start: 0;
  z-index: 0;
  margin-inline-start: -0.08em;
  font-family: var(--ridi-f21);
  font-size: var(--step-numeral);
  line-height: 0.78;
  letter-spacing: -0.045em;
  font-variation-settings: "opsz" 96;
  color: var(--mist);
  pointer-events: none;
  user-select: none;
  white-space: nowrap;
}
.hero__grid {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--s-7);
  align-items: start;
}
.hero__grid > * { min-width: 0; }
.hero__text { padding-top: clamp(4rem, 14vw, 11rem); }
.hero__kicker { margin-bottom: var(--s-5); }
.hero__title {
  font-size: var(--step-hero);
  line-height: 0.98;
  letter-spacing: -0.028em;
  max-width: 14ch;
  color: var(--ink);
}
.hero__title em { color: var(--teal); }
.hero__line {
  display: block;
  width: min(100%, 22rem);
  height: 0;
  margin-block: var(--s-6) var(--s-5);
  border: 0;
  border-top: 1px solid var(--teal);
}
.hero__standfirst {
  max-width: 46ch;
  font-size: var(--ridi-a2b);
  line-height: 1.45;
  color: var(--slate);
}
.hero__actions { margin-top: var(--s-6); }
.hero__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem 1.5rem;
  margin-top: var(--s-6);
  padding-top: var(--s-3);
  border-top: var(--hair);
  max-width: 40rem;
}
.hero__meta .meta { color: var(--slate); }
.hero__meta .meta strong { color: var(--ink); font-weight: 500; }
.hero__media { margin: 0; position: relative; }
.hero__media img {
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  object-position: 42% 50%;
  background: var(--mist);
}
.hero__media figcaption {
  display: flex;
  justify-content: space-between;
  gap: var(--s-3);
  margin-top: var(--s-3);
  padding-top: var(--s-2);
  border-top: var(--hair);
  font-family: var(--ridi-b28);
  font-size: var(--mono-size);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--slate);
}
.hero__media figcaption > * { min-width: 0; }
@media (max-width: 899.98px) {
  .hero__media img { aspect-ratio: 3 / 2; }
}
@media (min-width: 900px) {
  .hero__grid { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: var(--s-6); }
  .hero__media { margin-top: calc(var(--s-8) * -1); margin-right: calc(var(--gutter) * -0.5); }
  .hero__text { padding-bottom: var(--s-6); }
  .hero__title { max-width: 13ch; position: relative; z-index: 2; }
}

.page-hero {
  position: relative;
  overflow-x: clip;
  padding-block: clamp(3rem, 8vw, 6rem) clamp(3rem, 7vw, 5.5rem);
}
.page-hero .numeral--behind { inset-block-start: clamp(0.5rem, 2vw, 1.5rem); }
.page-hero__grid {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--s-6);
  align-items: end;
}
.page-hero__grid > * { min-width: 0; }
.page-hero__text { padding-top: clamp(3rem, 10vw, 8rem); }
.page-hero__title {
  font-size: clamp(2.25rem, 6vw + 0.5rem, 6rem);
  line-height: 1;
  letter-spacing: -0.026em;
  max-width: 16ch;
  margin-top: var(--s-4);
}
.page-hero__lede { margin-top: var(--s-5); max-width: 48ch; font-size: var(--ridi-a2b); line-height: 1.45; color: var(--slate); }
.page-hero__aside { border-top: 1px solid var(--ink); padding-top: var(--s-3); }
.page-hero__aside .spec-table { border-top: 0; }
.page-hero--legal .page-hero__title { max-width: 18ch; font-size: clamp(2.25rem, 5vw + 0.5rem, 5rem); }
.page-hero--legal .page-hero__text { padding-top: clamp(2.5rem, 8vw, 6rem); }
@media (min-width: 900px) {
  .page-hero__grid { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: var(--s-8); }
}

.section__numeral {
  position: absolute;
  inset-block-start: calc(var(--section) * 0.2);
  inset-inline-start: 0;
  z-index: 0;
  margin-inline-start: -0.08em;
}
.section__numeral--right { inset-inline-start: auto; inset-inline-end: 0; margin-inline-start: 0; margin-inline-end: -0.06em; }
.section__intro { padding-top: clamp(3rem, 12vw, 10rem); }
.section__intro h2 { max-width: 14ch; margin-top: var(--s-4); }
.hero__kicker { position: relative; z-index: 3; }
.hero__title { margin-top: var(--s-4); }
.legal-row button:hover { background: var(--ink-3); }
.section__intro .lede { margin-top: var(--s-5); }

.room__figures {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  border-top: 1px solid var(--ink);
}
.room__figures > * { min-width: 0; }
.room__figure {
  display: grid;
  grid-template-columns: minmax(0, 7rem) minmax(0, 1fr);
  gap: var(--s-4);
  align-items: baseline;
  padding-block: var(--s-5);
  border-bottom: var(--hair);
}
.room__figure > * { min-width: 0; }
.room__value {
  font-family: var(--ridi-f21);
  font-size: clamp(2.75rem, 6vw, 4.5rem);
  line-height: 0.9;
  letter-spacing: -0.035em;
  font-variation-settings: "opsz" 96;
  color: var(--ink);
}
.room__value small { font-family: var(--ridi-b28); font-size: var(--mono-size); letter-spacing: var(--mono-track); text-transform: uppercase; color: var(--teal); margin-left: 0.35em; }
.room__label { font-size: var(--ridi-fb5); color: var(--ink); max-width: 44ch; }
.room__label .meta { display: block; margin-bottom: 0.25rem; }
.room__quote {
  margin-top: var(--s-6);
  padding-left: var(--s-5);
  border-left: 1px solid var(--teal);
  font-family: var(--ridi-f21);
  font-style: italic;
  font-size: var(--ridi-895);
  line-height: 1.25;
  max-width: 30ch;
  color: var(--ink);
}
@media (min-width: 640px) {
  .room__figure { grid-template-columns: minmax(0, 11rem) minmax(0, 1fr); }
}

.index-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--s-5);
  margin-bottom: var(--s-7);
}
.index-head > * { min-width: 0; }
.index-head h2 { max-width: 16ch; }
.index-head__note { max-width: 40ch; color: var(--slate); }
@media (min-width: 900px) {
  .index-head { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); align-items: end; }
}
.silhouette { scroll-margin-top: calc(var(--bar-h) + 1rem); }
.silhouette__fabric { font-family: var(--ridi-f21); font-style: italic; font-size: var(--ridi-a2b); color: var(--slate); }
.silhouette__cta { margin-top: var(--s-4); }
.silhouette__num { align-self: start; }
@media (max-width: 767.98px) {
  .silhouette__num { margin-inline-start: -0.06em; }
  .silhouette__media { max-width: 100%; }
  .silhouette__media img { aspect-ratio: 4 / 5; }
}
@media (min-width: 768px) {
  .silhouette:nth-child(even) .silhouette__body { padding-top: var(--s-5); }
}

.timeline { margin: 0; }
.timeline__svg {
  width: 100%;
  height: auto;
  overflow: visible;
  font-family: var(--ridi-b28);
}
.timeline__svg .tl-axis { stroke: var(--ink); stroke-width: 1; }
.timeline__svg .tl-span { stroke: var(--teal); stroke-width: 3; }
.timeline__svg .tl-tick { stroke: var(--ink); stroke-width: 1; }
.timeline__svg .tl-dot { fill: var(--paper); stroke: var(--ink); stroke-width: 1.25; }
.timeline__svg .tl-dot--accent { fill: var(--teal); stroke: var(--teal); }
.timeline__svg .tl-label { fill: var(--ink); font-size: 13px; letter-spacing: 0.06em; text-transform: uppercase; }
.timeline__svg .tl-sub { fill: var(--slate); font-size: 11px; letter-spacing: 0.04em; }
.timeline__svg .tl-week { fill: var(--steel); font-size: 11px; }
.timeline__scroll {
  max-width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  padding-block: var(--s-4);
  border-top: 1px solid var(--ink);
  border-bottom: var(--hair);
}
.timeline__scroll:focus-visible { outline: 2px solid var(--teal); outline-offset: 2px; }
.timeline__scroll .timeline__svg { min-width: 40rem; }
.timeline__legend {
  list-style: none;
  margin: var(--s-5) 0 0;
  padding: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 0;
  counter-reset: tl;
}
.timeline__legend li {
  display: grid;
  grid-template-columns: minmax(0, 3.5rem) minmax(0, 1fr);
  gap: var(--s-3);
  padding-block: var(--s-3);
  border-bottom: var(--hair);
  counter-increment: tl;
}
.timeline__legend li::before {
  content: counter(tl, decimal-leading-zero);
  font-family: var(--ridi-b28);
  font-size: var(--mono-size);
  letter-spacing: 0.04em;
  color: var(--teal);
  padding-top: 0.3em;
}
.timeline__legend li > * { min-width: 0; }
.timeline__aside { display: grid; gap: var(--s-5); align-content: start; }
.timeline__warn {
  padding: var(--s-5);
  background: var(--ink);
  color: var(--paper);
}
.timeline__warn p { color: #D3D9DE; }
.timeline__warn .meta { color: var(--ice); display: block; margin-bottom: var(--s-2); }

.ledger {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--s-7);
}
.ledger > * { min-width: 0; }
@media (min-width: 640px) { .ledger { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s-6); } }
.ledger__col { border-top: 1px solid var(--ink); }
.ledger__col--extra { border-top-color: var(--teal); }
.ledger__head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: var(--s-3);
  padding-block: var(--s-3) var(--s-4);
  border-bottom: var(--hair);
}
.ledger__head h3 { font-size: var(--ridi-895); }
.ledger__list { list-style: none; margin: 0; padding: 0; }
.ledger__list li {
  display: grid;
  grid-template-columns: 1.5rem minmax(0, 1fr);
  gap: var(--s-3);
  padding-block: var(--s-4);
  border-bottom: var(--hair);
  line-height: 1.5;
}
.ledger__list li > * { min-width: 0; }
.ledger__list .icon { width: 1.125rem; height: 1.125rem; margin-top: 0.2em; color: var(--teal); }
.ledger__col--extra .ledger__list .icon { color: var(--slate); }
.ledger__list strong { display: block; font-weight: 500; color: var(--ink); }
.ledger__list span { color: var(--slate); font-size: var(--step--1); }

.inquiry__aside { display: grid; gap: var(--s-6); align-content: start; }
.inquiry__aside h3 { font-size: var(--ridi-895); }
.inquiry__terms { font-size: var(--step--1); color: var(--slate); max-width: 38ch; }
.band--ink .inquiry__terms { color: var(--steel); }
.band--ink .form .field__label { color: var(--paper); }
.band--ink .form .field__hint { color: var(--steel); }
.band--ink .form .check { color: #D3D9DE; }
.band--ink .form .check input { border-color: var(--paper); }
.band--ink .form .field__error { color: var(--error-ink); }
.band--ink .form .field.is-invalid .field__label { color: var(--error-ink); }
.band--ink .form__foot { border-top: var(--hair-dark); }
.band--ink .form__note { color: var(--steel); }
.band--ink .form-status { background: var(--ink-3); color: var(--paper); border-left-color: var(--ice); }
.band--ink .contact-list { border-top-color: var(--paper); }
.band--ink .contact-list li { border-bottom: var(--hair-dark); }
.band--ink .contact-list a, .band--ink .contact-list span.contact-list__static, .glance .contact-list span.contact-list__static { color: var(--paper); }
.glance a, .band--ink .prose a, .band--ink .longform a { color: var(--ice); }
.band--ink .contact-list a:hover { color: var(--ice); background: var(--ink-3); }
.band--ink .contact-list a:active { background: var(--slate); }
.band--ink .contact-list .icon { color: var(--ice); }

.steps { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--ink); }
.step {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--s-4);
  padding-block: var(--s-7);
  border-bottom: var(--hair);
  overflow: visible;
  scroll-margin-top: calc(var(--bar-h) + 1rem);
}
.step__num { font-size: min(var(--step-numeral), 12rem); margin-inline-start: 0; }
.step > * { min-width: 0; }
.step__num {
  font-family: var(--ridi-f21);
  font-size: var(--step-numeral);
  line-height: 0.78;
  letter-spacing: -0.045em;
  font-variation-settings: "opsz" 96;
  color: var(--mist);
  margin-inline-start: -0.08em;
  pointer-events: none;
  user-select: none;
  white-space: nowrap;
}
.step__head { display: grid; gap: var(--s-2); }
.step__title { font-size: var(--ridi-28f); max-width: 18ch; }
.step__when { color: var(--teal); }
.step__body > * + * { margin-top: var(--s-4); }
.step__body { max-width: var(--measure); }
.step__facts { margin-top: var(--s-5); }
@media (min-width: 900px) {
  .step { grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: var(--s-6); align-items: start; }
  .step__num { grid-row: 1 / span 2; }
  .step:nth-child(even) { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); }
  .step:nth-child(even) .step__num { grid-column: 2; grid-row: 1 / span 2; justify-self: end; margin-inline: 0 -0.06em; }
  .step:nth-child(even) .step__head, .step:nth-child(even) .step__body { grid-column: 1; }
}
.band--ink .step { border-bottom: var(--hair-dark); }
.band--ink .step__num { color: var(--slate); }

.feature-media { margin: 0; }
.feature-media img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; background: var(--mist); }
.feature-media--bleed { margin-right: calc(var(--gutter) * -1); }
@media (min-width: 1024px) { .feature-media--bleed { margin-right: calc(var(--gutter) * -0.5); } }
.feature-media figcaption {
  margin-top: var(--s-3);
  padding-top: var(--s-2);
  border-top: var(--hair);
  font-family: var(--ridi-b28);
  font-size: var(--mono-size);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--slate);
}

.bring-list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--ink); }
.bring-list li {
  display: grid;
  grid-template-columns: minmax(0, 2.5rem) minmax(0, 1fr);
  gap: var(--s-3);
  padding-block: var(--s-4);
  border-bottom: var(--hair);
}
.bring-list li > * { min-width: 0; }
.bring-list__n { font-family: var(--ridi-b28); font-size: var(--mono-size); color: var(--teal); padding-top: 0.3em; }

.refusals { list-style: none; margin: 0; padding: 0; counter-reset: ref; border-top: 1px solid var(--ink); }
.refusals li {
  position: relative;
  counter-increment: ref;
  padding: var(--s-5) 0 var(--s-5) clamp(3.5rem, 9vw, 6rem);
  border-bottom: var(--hair);
}
.refusals li::before {
  content: counter(ref, decimal-leading-zero);
  position: absolute;
  left: 0;
  top: var(--s-4);
  font-family: var(--ridi-f21);
  font-size: clamp(2rem, 5vw, 3.25rem);
  line-height: 1;
  letter-spacing: -0.03em;
  color: var(--rule);
}
.refusals h3 { font-size: var(--ridi-895); margin-bottom: var(--s-2); }
.refusals p { color: var(--slate); max-width: 56ch; }
.band--ink .refusals { border-top-color: var(--paper); }
.band--ink .refusals li { border-bottom: var(--hair-dark); }
.band--ink .refusals li::before { color: var(--slate); }
.band--ink .refusals p { color: #D3D9DE; }

.pullquote {
  position: relative;
  padding-block: var(--s-5);
  border-top: 1px solid var(--teal);
  font-family: var(--ridi-f21);
  font-size: var(--ridi-28f);
  line-height: 1.12;
  letter-spacing: var(--display-track);
  color: var(--ink);
  max-width: 22ch;
}
.pullquote .icon { width: 1.5rem; height: 1.5rem; color: var(--teal); margin-bottom: var(--s-3); }
.pullquote cite { display: block; margin-top: var(--s-4); font-family: var(--ridi-b28); font-style: normal; font-size: var(--mono-size); letter-spacing: var(--mono-track); text-transform: uppercase; color: var(--slate); }
.band--ink .pullquote { color: var(--paper); border-top-color: var(--ice); }
.band--ink .pullquote .icon { color: var(--ice); }

.contact-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--s-7);
}
.contact-grid > * { min-width: 0; }
@media (min-width: 900px) { .contact-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: var(--s-8); } }
.contact-card { display: grid; gap: var(--s-5); align-content: start; }
.contact-card address {
  font-style: normal;
  font-family: var(--ridi-f21);
  font-size: var(--ridi-895);
  line-height: 1.2;
  letter-spacing: var(--display-track);
  color: var(--ink);
}
.contact-card__hours { display: grid; gap: var(--s-2); }
.directions { max-width: var(--measure); }
.directions > * + * { margin-top: var(--s-4); }
.directions h3 { font-size: var(--ridi-895); }
.directions__list { list-style: none; margin: 0; padding: 0; border-top: var(--hair); }
.directions__list li { padding-block: var(--s-3); border-bottom: var(--hair); display: grid; grid-template-columns: minmax(0, 8rem) minmax(0, 1fr); gap: var(--s-4); }
.directions__list li > * { min-width: 0; }
@media (max-width: 479.98px) { .directions__list li { grid-template-columns: minmax(0, 1fr); gap: 0.25rem; } }

.faq { border-top: 1px solid var(--ink); }
.faq__item { border-bottom: var(--hair); }
.faq__q { margin: 0; font-size: inherit; font-family: inherit; letter-spacing: 0; line-height: inherit; }
.faq__btn {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: var(--s-4);
  align-items: center;
  width: 100%;
  min-height: 64px;
  padding: var(--s-4) var(--s-2) var(--s-4) 0;
  text-align: left;
  font-family: var(--ridi-f21);
  font-size: var(--ridi-a2b);
  line-height: 1.25;
  letter-spacing: -0.01em;
  color: var(--ink);
  transition: background-color var(--dur-1) linear, color var(--dur-1) linear, padding var(--dur-2) var(--ease-out);
}
.faq__btn .icon { width: 1.25rem; height: 1.25rem; color: var(--teal); transition: transform var(--dur-2) var(--ease-out); }
.faq__btn:hover { background: var(--mist); padding-left: var(--s-3); color: var(--ink); }
.faq__btn:active { background: var(--rule); }
.faq__btn:focus-visible { outline: 2px solid var(--teal); outline-offset: -2px; }
.faq__btn[aria-expanded="true"] { color: var(--teal-deep); }
.faq__btn[aria-expanded="true"] .icon { transform: rotate(45deg); }
.faq__a { padding: 0 0 var(--s-5); max-width: var(--measure); color: var(--slate); }
.faq__a > * + * { margin-top: var(--s-3); }
.no-js .faq__a[hidden] { display: block !important; }

.tabs { position: relative; }
.tabs__list {
  display: none;
  border-top: 1px solid var(--ink);
  border-bottom: var(--hair);
}
.tabs__tab {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  min-height: 52px;
  padding: 0.75rem 1rem;
  font-family: var(--ridi-b28);
  font-size: var(--mono-size);
  font-weight: 500;
  letter-spacing: var(--mono-track);
  text-transform: uppercase;
  text-align: left;
  color: var(--slate);
  border-right: var(--hair);
  transition: background-color var(--dur-1) linear, color var(--dur-1) linear;
}
.tabs__tab::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -1px;
  height: 2px;
  background: var(--teal);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform var(--dur-2) var(--ease-out);
}
.tabs__tab-num { color: var(--slate); }
.tabs__tab:hover { background: var(--mist); color: var(--ink); box-shadow: inset 0 -2px 0 var(--teal); }
.tabs__tab:active { background: var(--rule); }
.tabs__tab:focus-visible { outline: 2px solid var(--teal); outline-offset: -3px; }
.tabs__tab[aria-selected="true"] { color: var(--teal); background: var(--paper); }
.tabs__tab[aria-selected="true"] .tabs__tab-num { color: var(--teal); }
.tabs__tab[aria-selected="true"]::after { transform: scaleX(1); }

.tabs__acc {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: var(--s-3);
  align-items: center;
  width: 100%;
  min-height: 60px;
  padding: var(--s-3) 0;
  border-bottom: var(--hair);
  text-align: left;
  font-family: var(--ridi-f21);
  font-size: var(--ridi-a2b);
  line-height: 1.2;
  color: var(--ink);
  transition: background-color var(--dur-1) linear, color var(--dur-1) linear, padding var(--dur-2) var(--ease-out);
}
.tabs__acc-num { font-family: var(--ridi-b28); font-size: var(--mono-size); color: var(--teal); }
.tabs__acc .icon { width: 1.125rem; height: 1.125rem; color: var(--teal); transition: transform var(--dur-2) var(--ease-out); }
.tabs__acc:hover { background: var(--mist); padding-inline: var(--s-2); }
.tabs__acc:active { background: var(--rule); }
.tabs__acc:focus-visible { outline: 2px solid var(--teal); outline-offset: -2px; }
.tabs__acc[aria-expanded="true"] { color: var(--teal-deep); border-bottom-color: var(--teal); }
.tabs__acc[aria-expanded="true"] .icon { transform: rotate(180deg); }
.tabs__panels { border-top: 1px solid var(--ink); }

.tabs__panel {
  position: relative;
  overflow-x: clip;
  padding-block: var(--s-6) var(--s-7);
  scroll-margin-top: calc(var(--bar-h) + 1rem);
}
.tabs__panel:focus-visible { outline: 2px solid var(--teal); outline-offset: 4px; }
.tabs__panel-num {
  position: absolute;
  top: var(--s-4);
  right: 0;
  font-family: var(--ridi-f21);
  font-size: var(--step-numeral-sm);
  line-height: 0.8;
  letter-spacing: -0.04em;
  color: var(--mist);
  pointer-events: none;
  user-select: none;
  z-index: 0;
}
.tabs__panel > .prose { position: relative; z-index: 1; }
.tabs__panel h2 { font-size: var(--ridi-28f); margin-top: 0; max-width: 20ch; }
.no-js .tabs__acc { display: none; }
.no-js .tabs__panel { border-bottom: var(--hair); }

@media (min-width: 768px) {
  .js .tabs__list {
    display: flex;
    flex-wrap: wrap;
    position: sticky;
    top: var(--bar-h);
    z-index: 5;
    background: var(--paper);
  }
  .js .tabs__acc { display: none; }
  .js .tabs__panels { border-top: 0; }
  .tabs__panel { padding-block: var(--s-7) var(--s-8); }
  .tabs__panel-num { font-size: var(--step-numeral); right: -0.06em; }
}
@media (min-width: 1024px) {
  .js .tabs__list { top: 0; }
}
@media (min-width: 1200px) {
  .tabs__panel > .prose { max-width: var(--measure); }
}

.glance {
  position: relative;
  border-top: 1px solid var(--ink);
  background: var(--ink);
  color: var(--paper);
  padding: var(--s-5) var(--gutter) var(--s-6);
  margin-inline: calc(var(--gutter) * -1);
}
@media (min-width: 900px) { .glance { margin-inline: 0; padding: var(--s-6) var(--s-6) var(--s-7); } }
.glance__head {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: baseline;
  gap: var(--s-2) var(--s-5);
  padding-bottom: var(--s-4);
  border-bottom: 1px solid var(--paper);
}
.glance__head h2 { font-size: var(--ridi-28f); color: var(--paper); }
.glance__head .meta { color: var(--ice); }
.glance__list { margin: 0; counter-reset: gl; }
.glance__row {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 0.375rem var(--s-6);
  padding-block: var(--s-4);
  border-bottom: var(--hair-dark);
  counter-increment: gl;
}
.glance__row > * { min-width: 0; }
.glance__row dt {
  display: flex;
  gap: 0.75rem;
  align-items: baseline;
  font-family: var(--ridi-b28);
  font-size: var(--mono-size);
  font-weight: 500;
  letter-spacing: var(--mono-track);
  text-transform: uppercase;
  color: var(--steel);
}
.glance__row dt::before { content: counter(gl, decimal-leading-zero); color: var(--ice); }
.glance__row dd { margin: 0; color: var(--paper); font-size: var(--ridi-fb5); line-height: 1.5; overflow-wrap: break-word; }
.glance__row dd code { font-family: var(--ridi-b28); font-size: 0.85em; background: var(--ink-3); color: var(--ice); padding: 0.1em 0.35em; overflow-wrap: anywhere; }
.glance__row dd a { color: var(--ice); }
.glance__row dd a:hover { color: var(--paper); }
.glance__row dd a:active { background: var(--ink-3); }
.glance__row dd a:focus-visible { outline: 2px solid var(--ice); outline-offset: 2px; }
@media (min-width: 640px) {
  .glance__row { grid-template-columns: minmax(0, 15rem) minmax(0, 1fr); align-items: baseline; }
}
.glance__foot { margin-top: var(--s-5); }
.glance__foot .consent-reopen {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  min-height: 48px;
  padding: 0.75rem 1.25rem;
  border: 1px solid var(--paper);
  background: var(--paper);
  color: var(--ink);
  font-family: var(--ridi-b28);
  font-size: var(--mono-size);
  font-weight: 500;
  letter-spacing: var(--mono-track);
  text-transform: uppercase;
  text-align: left;
  transition: background-color var(--dur-1) linear, border-color var(--dur-1) linear, transform var(--dur-1) var(--ease-out);
}
.glance__foot .consent-reopen:hover { background: var(--ice); border-color: var(--ice); }
.glance__foot .consent-reopen:active { background: var(--mist); transform: translateY(1px); }
.glance__foot .consent-reopen:focus-visible { outline: 2px solid var(--ice); outline-offset: 3px; }

.longform {
  position: relative;
  max-width: 66ch;
  padding-top: var(--s-8);
}
.longform > * + * { margin-top: 1.25em; }
.longform h2 {
  position: relative;
  font-size: var(--ridi-28f);
  margin-top: 2.75em;
  padding-top: var(--s-4);
  border-top: 1px solid var(--ink);
}
.longform h2:first-child { margin-top: 0; }
.longform h2 .longform__n {
  display: block;
  margin-bottom: var(--s-2);
  font-family: var(--ridi-b28);
  font-size: var(--mono-size);
  letter-spacing: 0.04em;
  color: var(--teal);
}
.longform h3 { font-size: var(--ridi-a2b); margin-top: 2em; }
.longform h2 + *, .longform h3 + * { margin-top: 0.75em; }
.longform ul, .longform ol { padding-left: 1.4em; }
.longform li + li { margin-top: 0.4em; }
.longform li::marker { color: var(--teal); }
.longform code { font-family: var(--ridi-b28); font-size: 0.85em; background: var(--mist); padding: 0.1em 0.35em; overflow-wrap: anywhere; }
.longform a { overflow-wrap: anywhere; }
.longform .vonaeed { margin-block: var(--s-5); }

.dated {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--s-6);
  align-items: start;
}
.dated > * { min-width: 0; }
.dated__rail {
  position: relative;
  border-top: 1px solid var(--ink);
  border-bottom: var(--hair);
}
.dated__rail-head {
  display: block;
  padding: var(--s-3) 0 var(--s-2);
  font-family: var(--ridi-b28);
  font-size: var(--mono-size);
  letter-spacing: var(--mono-track);
  text-transform: uppercase;
  color: var(--slate);
}
.dated__strip {
  list-style: none;
  margin: 0;
  padding: 0 0 var(--s-3);
  display: flex;
  gap: 0;
  overflow-x: auto;
  scroll-snap-type: x proximity;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
}
.dated__strip:focus-visible { outline: 2px solid var(--teal); outline-offset: 2px; }
.dated__stop { flex: 0 0 auto; scroll-snap-align: start; min-width: 0; }
.dated__mark {
  position: relative;
  display: grid;
  gap: 0.25rem;
  min-height: 72px;
  width: 9.5rem;
  padding: var(--s-4) var(--s-4) var(--s-3) 0;
  margin-right: var(--s-3);
  border-top: 1px solid var(--rule);
  color: var(--ink);
  text-decoration: none;
  transition: background-color var(--dur-1) linear, color var(--dur-1) linear, border-color var(--dur-2) var(--ease-out);
}
.dated__mark::before {
  content: "";
  position: absolute;
  top: -5px;
  left: 0;
  width: 9px;
  height: 9px;
  background: var(--paper);
  border: 1px solid var(--ink);
  transition: background-color var(--dur-2) var(--ease-out), border-color var(--dur-2) var(--ease-out);
}
.dated__value {
  font-family: var(--ridi-f21);
  font-size: var(--ridi-895);
  line-height: 1;
  letter-spacing: -0.02em;
  font-variation-settings: "opsz" 72;
}
.dated__key {
  font-family: var(--ridi-b28);
  font-size: 0.6875rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  line-height: 1.35;
  color: var(--slate);
  overflow-wrap: anywhere;
}
.dated__mark:hover { background: var(--mist); color: var(--ink); border-top-color: var(--teal); }
.dated__mark:hover::before { background: var(--teal); border-color: var(--teal); }
.dated__mark:active { background: var(--rule); }
.dated__mark:focus-visible { outline: 2px solid var(--teal); outline-offset: -2px; }
.dated__mark[aria-current="true"], .dated__mark.is-active { border-top-color: var(--teal); }
.dated__mark[aria-current="true"]::before, .dated__mark.is-active::before { background: var(--teal); border-color: var(--teal); }
.dated__mark[aria-current="true"] .dated__value, .dated__mark.is-active .dated__value { color: var(--teal); }

.dated__body { max-width: var(--measure-wide); }
.dated__section {
  position: relative;
  padding-block: var(--s-6) var(--s-7);
  border-top: var(--hair);
  scroll-margin-top: calc(var(--bar-h) + 6rem);
}
.dated__section:first-child { border-top: 1px solid var(--ink); }
.dated__pin {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.25rem 0.75rem;
  margin-bottom: var(--s-3);
  font-family: var(--ridi-b28);
  font-size: var(--mono-size);
  letter-spacing: var(--mono-track);
  text-transform: uppercase;
  color: var(--teal);
}
.dated__pin b { font-weight: 500; color: var(--ink); }
.dated__section h2 { font-size: var(--ridi-28f); max-width: 20ch; }
.dated__section .prose { margin-top: var(--s-4); }
.dated__section-num {
  position: absolute;
  top: var(--s-4);
  right: 0;
  font-family: var(--ridi-f21);
  font-size: var(--step-numeral-sm);
  line-height: 0.8;
  letter-spacing: -0.04em;
  color: var(--mist);
  z-index: -1;
  pointer-events: none;
  user-select: none;
}
.dated__body { position: relative; z-index: 0; isolation: isolate; }

@media (min-width: 1024px) {
  .dated { grid-template-columns: minmax(0, 15rem) minmax(0, 1fr); gap: var(--s-8); }
  .dated__rail {
    position: sticky;
    top: var(--s-5);
    max-height: calc(100vh - 3rem);
    overflow-y: auto;
    border-bottom: 0;
    scrollbar-width: thin;
  }
  .dated__strip {
    flex-direction: column;
    overflow-x: visible;
    padding: 0 0 0 1.25rem;
    border-left: 1px solid var(--ink);
    margin-left: 4px;
  }
  .dated__mark {
    width: auto;
    margin-right: 0;
    min-height: 64px;
    padding: var(--s-3) var(--s-3) var(--s-3) 0;
    border-top: 0;
    border-bottom: var(--hair);
  }
  .dated__mark::before { top: 1.1rem; left: calc(-1.25rem - 5px); }
  .dated__mark:hover { padding-left: var(--s-2); }
  .dated__section { display: grid; grid-template-columns: minmax(0, 1fr); }
  .dated__section::before {
    content: "";
    position: absolute;
    top: calc(var(--s-6) + 0.5rem);
    left: calc(-1 * var(--s-8));
    width: calc(var(--s-8) - var(--s-3));
    border-top: 1px dashed var(--rule);
  }
}

.notfound {
  position: relative;
  overflow-x: clip;
  min-height: 70vh;
  display: grid;
  align-content: center;
  padding-block: var(--section);
}
.notfound__num {
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  margin-inline-start: -0.08em;
  font-family: var(--ridi-f21);
  font-size: clamp(8rem, 38vw, 34rem);
  line-height: 0.8;
  letter-spacing: -0.05em;
  color: var(--mist);
  pointer-events: none;
  user-select: none;
  white-space: nowrap;
}
.notfound__inner { position: relative; z-index: 1; max-width: 40rem; }
.notfound__inner h1 { font-size: clamp(2.25rem, 6vw + 0.5rem, 5.5rem); }
.notfound__inner p { margin-top: var(--s-5); color: var(--slate); max-width: 44ch; }
.notfound__inner .btn-row { margin-top: var(--s-6); }

.closing {
  position: relative;
  overflow-x: clip;
}
.closing__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--s-6); align-items: end; }
.closing__grid > * { min-width: 0; }
.closing h2 { max-width: 16ch; }
@media (min-width: 900px) { .closing__grid { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); } }

.crumbs { display: flex; flex-wrap: wrap; gap: 0.25rem 0.75rem; list-style: none; margin: 0; padding: 0; }
.crumbs li { display: inline-flex; align-items: center; gap: 0.75rem; font-family: var(--ridi-b28); font-size: var(--mono-size); letter-spacing: var(--mono-track); text-transform: uppercase; color: var(--slate); }
.crumbs li + li::before { content: "/"; color: var(--rule); }
.crumbs a { display: inline-flex; align-items: center; min-height: 44px; color: var(--slate); text-decoration: none; border-bottom: 1px solid transparent; transition: color var(--dur-1) linear, border-color var(--dur-2) var(--ease-out), background-color var(--dur-1) linear; }
.crumbs a:hover { color: var(--teal); border-bottom-color: var(--teal); }
.crumbs a:active { background: var(--mist); }
.crumbs a:focus-visible { outline: 2px solid var(--teal); outline-offset: 2px; }

@media (max-width: 359.98px) {
  .hero__title, .page-hero__title { letter-spacing: -0.02em; }
  .room__figure { grid-template-columns: minmax(0, 1fr); gap: var(--s-2); }
  .timeline__legend li, .bring-list li { grid-template-columns: minmax(0, 2.25rem) minmax(0, 1fr); }
  .glance { padding-inline: 1rem; }
}

@media (prefers-reduced-motion: reduce) {
  .faq__btn:hover, .tabs__acc:hover, .dated__mark:hover { padding-left: 0; }
}

@media print {
  .rail, .nav-toggle, .consent, .chat-launcher, .chat-panel, .site-footer .btn-row { display: none !important; }
  body { padding-right: 0; background: #fff; }
  .numeral, .hero__numeral, .step__num, .tabs__panel-num, .dated__section-num { color: #eee; }
  .tabs__panel[hidden] { display: block !important; }
}


/* ---- Cookie notice: summary-first (at-a-glance table, then prose) ---- */
.page-hero__text--solo { max-width: 52rem; }
.glance.glance--summary { display: block; max-width: 60rem; margin-inline: auto; grid-template-columns: none; }
.glance--summary .glance__foot { margin-top: 1.5rem; }
.glance-table {
  width: 100%;
  border-collapse: collapse;
  border-top: 2px solid var(--ink, #1c1d1f);
  border-bottom: 1px solid var(--line, rgba(28, 29, 31, 0.16));
  font-size: 1rem;
  line-height: 1.55;
}
.glance-table caption {
  caption-side: top;
  text-align: left;
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.5rem 1.5rem;
  padding-bottom: 1rem;
}
.glance-table__title {
  font-family: "Bodoni Moda", Georgia, serif;
  font-size: clamp(1.75rem, 1.2rem + 2vw, 2.5rem);
  font-weight: 500;
  line-height: 1.1;
}
.glance-table__meta {
  font-family: "IBM Plex Mono", ui-monospace, monospace;
  font-size: 0.8125rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--steel, #5f6770);
}
.glance-table th,
.glance-table td {
  padding: 1rem 0;
  vertical-align: top;
  text-align: left;
  border-top: 1px solid var(--line, rgba(28, 29, 31, 0.16));
}
.glance-table tr:first-child th,
.glance-table tr:first-child td { border-top: 0; }
.glance-table th {
  width: 14rem;
  padding-right: 2rem;
  font-family: "IBM Plex Mono", ui-monospace, monospace;
  font-size: 0.8125rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--steel, #5f6770);
}
.glance-table td { overflow-wrap: anywhere; }
.glance-table code { font-size: 0.875em; }
.ticied5 { max-width: calc(68ch + 2 * var(--gutter, 1.5rem)); }
.ticied5 .longform { max-width: 68ch; }

@media (max-width: 640px) {
  .glance-table,
  .glance-table tbody,
  .glance-table tr,
  .glance-table th,
  .glance-table td { display: block; width: 100%; }
  .glance-table caption { display: block; }
  .glance-table__meta { display: block; margin-top: 0.5rem; }
  .glance-table tr { border-top: 1px solid var(--line, rgba(28, 29, 31, 0.16)); padding: 0.875rem 0; }
  .glance-table tr:first-child { border-top: 0; }
  .glance-table th,
  .glance-table td { border-top: 0; padding: 0; }
  .glance-table th { padding-bottom: 0.375rem; }
}
@media (max-width: 360px) {
  .glance-table { font-size: 0.9375rem; }
  .glance-table__title { font-size: 1.625rem; }
}
