/* Nonvisual access repairs and honest review states; approved native CSS stays layered first. */
.mnu:not(.on), .sheet:not(.on), .dlg:not(.on) { visibility: hidden; }
.dock:not(.on) { visibility: hidden; }
.is-convo .dock { visibility: visible; }
.rs:not(.on) .rs__x { visibility: hidden; }
.ibtn[aria-disabled="true"] { cursor: not-allowed; }
@media print {
  .print-brief .brief:not(.print-selected) { display: none !important; }
}

/* An empty placeholder must not create a scrollbar or change draft geometry. */
.ask__in:placeholder-shown { overflow: hidden; }

/* Keep the approved phone/desktop endpoints, but interpolate their gutters
   through narrow desktop panels instead of jumping at 641 CSS pixels. */
@media (min-width: 641px) and (max-width: 860px) {
  .shell { margin-inline: clamp(8px, calc(7.2727vw - 38.545px), 24px); }
  .top { padding-left: clamp(16px, calc(12.7273vw - 65.455px), 44px); padding-right: clamp(12px, calc(12.7273vw - 69.455px), 40px); }
  .hero { padding-inline: clamp(10px, calc(6.3636vw - 30.727px), 24px); }
  .say { padding-top: clamp(96px, calc(24.5455vw - 61.091px), 150px); padding-inline: clamp(20px, calc(5.4545vw - 14.909px), 32px); }
  .rows { padding-top: clamp(20px, calc(9.0909vw - 38.182px), 40px); padding-inline: clamp(20px, calc(5.4545vw - 14.909px), 32px); }
  .stages { padding-top: clamp(96px, calc(15.4545vw - 2.909px), 130px); }
  .med--photo { padding-top: clamp(250px, calc(68.1818vw - 186.364px), 400px); }
}
/* The existing stacked identity fits intermediate windows too. Keep the
   deliberate language/New question controls; allow the name to wrap. */
@media (max-width: 1099px) {
  .logo { display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: 8px; row-gap: 3px; text-align: left; }
  .logo__m { grid-row: 1 / 3; }
  .logo__by { margin: 0; }
  .logo span { white-space: normal; overflow: visible; text-overflow: clip; }
}
@media (min-width: 641px) and (max-width: 860px) {
  .logo { font-size: clamp(17px, calc(3.6364vw - 6.273px), 25px); }
  .logo__by { font-size: clamp(11.5px, calc(1.5909vw + 1.318px), 15px); }
}

/* Author styles must not resurrect sections excluded from direction A. */
[hidden] { display: none !important; }
/* Menus remain reachable in short windows and with the keyboard open. */
.mnu { max-height: calc(100dvh - 48px); overflow-y: auto; overscroll-behavior: contain; }
@media (max-width: 640px) {
  .mnu { max-height: calc(100dvh - 16px); }
}

.card.is-typing { min-height: calc(var(--ask-height, 0px) + 24px); }
@media (max-width: 640px) {
  .card.is-typing { min-height: calc(var(--ask-height, 0px) + 16px); }
}
/* Text entry hides the example immediately; only idle photo changes may fade. */
.ask__box:focus-within .ask__ph, .has-text .ask__ph { transition: none; }
@media (prefers-reduced-motion: reduce) { .ask__ph { transition: none; } }
/* The source switches a tall phone photo to a landscape card at641px, making
   it lose350px of height in a one-pixel resize. Interpolate between the supplied
   390px phone and the760px desktop card instead, keeping both endpoints. */
@media (min-width: 391px) and (max-width: 860px) {
  .card { aspect-ratio: auto; height: clamp(442.5px, calc(13.6525vw + 389.255px), 506.667px); }
}
@media (min-width: 641px) and (max-width: 860px) {
  .top { height: clamp(68px, calc(12.7273vw - 13.455px), 96px); }
  .shell { padding-bottom: clamp(24px, calc(5.4545vw - 10.909px), 36px); border-radius: clamp(28px, calc(9.0909vw - 30.182px), 48px); }
  .hello { margin-top: clamp(26px, calc(10vw - 38px), 48px); font-size: clamp(64px, calc(.6182vw + 60.043px), 65.36px); }
  .lede { margin-top: clamp(14px, calc(2.7273vw - 3.455px), 20px); }
  .card { margin-top: clamp(28px, calc(7.2727vw - 18.545px), 44px); border-radius: clamp(28px, calc(7.2727vw - 18.545px), 44px); }
  .ctl { margin-top: clamp(18px, calc(2.7273vw + .545px), 24px); }
  .news { margin-top: clamp(28px, calc(10.9091vw - 41.818px), 52px); }
}

.foot__in { padding-bottom: max(130px, var(--dock-clearance, 0px)); }
.cv { padding-bottom: max(230px, var(--dock-clearance, 0px)); }
@media (max-width: 640px) {
  .foot__in { padding-bottom: max(120px, var(--dock-clearance, 0px)); }
  .cv { padding-bottom: max(190px, var(--dock-clearance, 0px)); }
}

/* Approved public-page links: separate the attribution from the Home button
   while retaining the existing inline/stacked identity and link typography. */
.identity { display: flex; align-items: center; gap: 12px; min-width: 0; padding: 6px 0; --identity-by-size: 15px; --identity-mark-width: 30px; }
.identity .logo { padding: 0; }
.identity .logo__by { font-size: var(--identity-by-size); }
.row__actions { display: flex; flex-wrap: wrap; align-items: center; column-gap: 24px; }
@media (max-width: 1099px) {
  .identity { display: grid; grid-template-columns: minmax(0, 1fr); row-gap: 3px; }
  .identity .logo { display: flex; gap: 8px; text-align: left; }
  .identity .logo__m { margin-block: -10px; transform: translateY(calc((var(--identity-by-size) + 3px) / 2)); }
  .identity .logo__by { margin: 0 0 0 calc(var(--identity-mark-width) + 8px); justify-self: start; }
}
@media (max-width: 640px) {
  .identity { --identity-by-size: 11.5px; --identity-mark-width: 24px; }
}
@media (min-width: 641px) and (max-width: 860px) {
  .identity { --identity-by-size: clamp(11.5px, calc(1.5909vw + 1.318px), 15px); }
}
