/* Fixed case sheet: a stationary image and action rail, with a separate
   scroll region for questions and their expanded answers. */
#case-modal {
  background:transparent !important;
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
  isolation:isolate;
  /* Opacity below 1 on an ancestor creates a backdrop root: the child blur
     cannot sample the page until that ancestor finishes fading. Keep this
     host fully opaque and fade the two sibling paint layers instead. */
  opacity:1 !important;
  transition:none !important;
}
#case-modal::before,
#case-modal .case-modal-window {
  opacity:0;
  transition:opacity .65s cubic-bezier(.2,.82,.22,1) !important;
}
#case-modal.open::before,
#case-modal.open .case-modal-window { opacity:1; }
#case-modal.closing::before,
#case-modal.closing .case-modal-window {
  opacity:0;
  transition-duration:.18s !important;
  transition-timing-function:ease-out !important;
}
#case-modal .case-modal-window.case-entering {
  animation:case-sheet-enter .65s cubic-bezier(.2,.82,.22,1) both !important;
}
@keyframes case-sheet-enter {
  from { transform:translate3d(0,24px,0) scale(.96); }
  to { transform:none; }
}
/* A sibling paint layer never samples the sheet it is supposed to sit behind.
   Keep blur off both the animated dialog ancestor and the opaque window. */
#case-modal::before {
  content:""; position:absolute; inset:0; z-index:0; pointer-events:none;
  background:rgba(8,8,10,.12);
  backdrop-filter:blur(12px) saturate(.96);
  -webkit-backdrop-filter:blur(12px) saturate(.96);
}
#case-modal .case-modal-window {
  z-index:1;
  width: min(1040px, calc(100vw - 40px), calc((100dvh - 286px) * 16 / 9 + 320px));
  max-height: calc(100dvh - 40px);
  height: min(660px, calc(100dvh - 40px));
  display: block !important;
  overflow: hidden !important;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  background: #141416 !important;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
#case-modal .case-modal-content {
  display: grid;
  padding: 0;
  grid-template-columns: minmax(0,1fr) 320px;
  grid-template-areas: none !important;
  grid-template-rows: auto minmax(0,1fr) !important;
  gap: 0;
  height: 100%;
  max-height: 100%;
  overflow: hidden;
  overscroll-behavior: contain;
  scrollbar-width: thin;
}
#case-modal .case-modal-copy, #case-modal .case-modal-visual { min-width: 0; }
#case-modal .case-modal-copy {
  grid-column: 2; grid-row: 1 / 3; align-self: stretch;
  display: flex; flex-direction: column; padding: 24px 20px 20px;
  min-height: 0;
  border-left: 1px solid rgba(255,255,255,.09);
  background: #141416;
  position: relative; z-index: 3;
  box-shadow: -16px 0 32px rgba(0,0,0,.34), inset 1px 0 0 rgba(255,255,255,.075), inset 0 1px 0 rgba(255,255,255,.06), inset 0 -1px 0 rgba(0,0,0,.32);
}
#case-modal .case-modal-kicker { padding-right: 36px; font-size: 10px; line-height: 1.5; letter-spacing: 1.5px; }
#case-modal h2 { font-size: 38px; margin: 10px 0 0; padding-right: 28px; line-height: 1.04; }
#case-modal .case-modal-lead { font-size: 14px; line-height: 1.5; margin: 12px 0 0; }
#case-modal .case-modal-sidebar { display: flex; flex-direction: column; gap: 12px; margin-top: 16px; }
#case-modal .case-modal-facts { display: flex; flex-direction: column; align-self: stretch; width: 100%; gap: 8px; margin: 0; padding: 0; border: 0; }
#case-modal .case-fact { display: flex; align-items: baseline; justify-content: space-between; width: 100%; gap: 10px; padding: 10px; background: rgba(255,255,255,.018); border: 1px solid rgba(255,255,255,.075); border-radius: 12px; }
#case-modal .case-modal-facts .case-fact:nth-child(3) { display: none; }
#case-modal .case-fact span { font-size: 10px; line-height: 1.3; letter-spacing: .5px; color: #9d9da5; }
#case-modal .case-fact strong { margin: 0; max-width: none; text-align: right; font-size: 13px; overflow-wrap: normal; }
#case-modal .case-fact--time strong { display: flex; justify-content: flex-start; }
#case-modal .case-fact .case-time-number, #case-modal .case-fact .case-time-unit { font: inherit; color: inherit; letter-spacing: 0; }
#case-modal .case-modal-tech { display: flex; flex-direction: column; align-items: flex-start; margin: 0; gap: 8px; }
#case-modal .case-modal-tech-label { font-size: 10px; }
#case-modal .case-modal-tech-list { gap: 6px; }
#case-modal .case-modal-tech-list > span { padding: 6px 9px; font-size: 11px; background: rgba(255,255,255,.025); }
#case-modal .case-modal-footer { margin-top: auto; padding-top: 16px; }
#case-modal .case-modal-estimate { display: flex; flex-direction: column; align-items: flex-start; margin: 0 0 12px; gap: 6px; }
#case-modal .case-modal-estimate strong { font-size: 22px; line-height: 1.2; }
#case-modal .case-modal-visual { grid-column: 1; grid-row: 1; display: block; align-self: start; }
#case-modal .case-modal-media {
  grid-area: auto !important; width: 100%; height: auto; aspect-ratio: 16 / 9;
  border: 0; border-radius: 0; background: #0c0c0e; box-shadow: none;
}
#case-modal .case-modal-media img { object-fit: contain !important; }
#case-modal .case-modal-questions {
  grid-column: 1; grid-row: 2;
  display: flex; flex-direction: column; min-height: 0; min-width: 0;
  overflow: hidden;
  background: rgba(16,16,23,.32);
}
#case-modal .case-modal-questions-title {
  flex: none; margin: 0; padding: 12px 20px 8px;
  color: #b8b8c0; font-family: inherit; font-size: 13px !important; font-weight: 500 !important; line-height: 1.4;
}
#case-modal .case-modal-story {
  margin: 0; padding: 0 20px 12px; border: 0;
  display: flex; flex-direction: column; justify-content: flex-start;
  flex: 1; min-height: 0; height: auto;
  box-sizing: border-box; overflow-x: hidden; overflow-y: auto;
  overscroll-behavior: contain; scrollbar-width: thin;
  scrollbar-color: #55555c transparent;
  -webkit-overflow-scrolling: touch;
}
#case-modal .case-modal-story:focus-visible { outline: 1px solid #777; outline-offset: -2px; }
#case-modal .case-section { flex: none; border-top: 1px solid rgba(255,255,255,.1); }
#case-modal .case-section h3 { margin: 0; font: inherit; }
#case-modal .case-section-toggle {
  width: 100%; min-height: 44px; display: flex; justify-content: space-between;
  align-items: center; gap: 16px; padding: 6px 0; border: 0; background: none;
  text-align: left; font-family: inherit; font-weight: 500; line-height: 1.35;
  font-size: 14px; color: #e5e5e7; cursor: pointer; box-shadow: none;
  transform: none !important; scale: none !important; translate: none !important;
  transition: color .25s ease;
}
html body #case-modal .case-section-toggle:hover,
html body #case-modal .case-section-toggle:focus-visible {
  transform: none !important; scale: none !important; translate: none !important;
}
html body #case-modal .case-section-toggle { transition: color .25s ease !important; }
#case-modal .case-section-toggle:hover { color: #fff; }
#case-modal .case-section-toggle::after { content: '+'; font: 400 22px/1 sans-serif; color: #a4a4aa; }
#case-modal .case-section-toggle[aria-expanded=true]::after { content: '−'; }
#case-modal .case-section-toggle:focus-visible { outline: 2px solid #aaa; outline-offset: 3px; border-radius: 3px; }
#case-modal .case-modal-action[hidden] { display: none !important; }
#case-modal .case-section-panel {
  display: grid; grid-template-rows: 0fr;
  transition: grid-template-rows .55s cubic-bezier(.22,1,.36,1);
}
#case-modal .case-section-panel-inner { min-height: 0; overflow: hidden; }
#case-modal .case-section-panel p {
  margin: 0; padding-bottom: 8px; font-size: 14px; line-height: 1.45; color: #aaaab0;
  opacity: 0; transform: translateY(-6px);
  transition: opacity .35s ease, transform .45s cubic-bezier(.22,1,.36,1);
}
#case-modal .case-section.open .case-section-panel { grid-template-rows: 1fr; }
#case-modal .case-section.open .case-section-panel p { opacity: 1; transform: none; }
#case-modal .case-modal-actions { grid-area: auto; display: flex; flex-direction: column !important; gap: 10px; margin: 0; padding: 0; width: 100%; }
#case-modal .case-modal-action { flex: none; width: 100% !important; min-width: 0; min-height: 44px !important; padding: 11px 14px; font-size: 13px; }
#case-modal .case-modal-action svg { flex: none; width: 16px; height: 16px; }
#case-modal .case-modal-close { width: 44px; height: 44px; top: 16px !important; right: 16px !important; }
html body #case-modal #case-modal-action { background: #252528 !important; color: #eee !important; border-color: rgba(255,255,255,.13) !important; }
html body #case-modal #case-modal-site-action { background: #ebebe8 !important; color: #111 !important; border-color: #ebebe8 !important; }
html body #case-modal #case-modal-site-action { box-shadow: 0 6px 16px rgba(0,0,0,.18) !important; }
html body #case-modal #case-modal-site-action::before,
html body #case-modal #case-modal-site-action::after { display: none !important; }
/* The inserted light span is not a content tag: no tag padding or border. */
html body #case-modal :is(.case-fact,.case-modal-tech-list > span).lumina-target--chip { overflow: hidden !important; }
html body #case-modal :is(.case-fact,.case-modal-tech-list > span) > .lumina-layer {
  position: absolute !important; inset: 0 !important; padding: 0 !important;
  margin: 0 !important; border: 0 !important; background: transparent !important;
  width: auto !important; height: auto !important; border-radius: inherit !important;
  pointer-events: none !important;
}
html body #case-modal .case-modal-action > .lumina-layer { display: block !important; inset: 0 !important; }
html body #case-modal #case-modal-action svg { color: currentColor !important; stroke: currentColor !important; }
html body #case-modal #case-modal-site-action svg { color: currentColor !important; stroke: currentColor !important; }
html body #case-modal #case-modal-site-action:hover { background: #f2f2ef !important; color: #111 !important; }
html body #case-modal .case-modal-close {
  background:#29292c !important; color:#eee !important;
  border-color:rgba(255,255,255,.18) !important;
  backdrop-filter:none; -webkit-backdrop-filter:none;
}
/* Explicit complete states override historic glyph-only hover rules. */
html body #case-modal .case-modal-close:is(:hover,:focus-visible,:active),
html body #case-modal #case-modal-action:is(:hover,:focus-visible,:active) {
  background:#f2f2ef !important; color:#111 !important; border-color:#f2f2ef !important;
}
html body #case-modal .case-modal-close svg,
html body #case-modal #case-modal-action svg { color:inherit !important; stroke:currentColor !important; }
html body #case-modal .case-modal-close > .lumina-layer { display:block !important; }
/* A lit border may follow the pointer; a white control stays uniformly white. */
html body #case-modal .case-modal-close:is(:hover,:focus-visible,:active) > .lumina-layer::before,
html body #case-modal #case-modal-action:is(:hover,:focus-visible,:active) > .lumina-layer::before { background:none !important; }
@media (hover:hover) and (pointer:fine) {
  #case-modal .case-modal-window > .lumina-layer {
    display: block; position: absolute; inset: 0; z-index: 2;
    border-radius: inherit; pointer-events: none;
    opacity: calc(var(--lumina-strength,0) * .8);
    transition: opacity .45s ease;
  }
  #case-modal .case-modal-window > .lumina-layer::before {
    display:block !important;
    background: radial-gradient(430px circle at var(--lumina-x,50%) var(--lumina-y,50%),rgba(255,255,255,.09),rgba(255,255,255,.026) 48%,transparent 85%);
  }
  #case-modal .case-modal-window > .lumina-layer::after {
    padding: 1px;
    background: radial-gradient(300px circle at var(--lumina-x,50%) var(--lumina-y,50%),rgba(255,255,255,.45),rgba(255,255,255,.12) 48%,transparent 85%);
    -webkit-mask: linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
    -webkit-mask-composite: xor; mask-composite: exclude;
  }
  #case-modal .case-modal-copy > .lumina-layer {
    display:block; position:absolute; inset:0; z-index:0; pointer-events:none;
    border-radius:inherit; opacity:calc(var(--lumina-strength,0) * .8);
    transition:opacity .45s ease;
  }
  #case-modal .case-modal-copy > .lumina-layer::before {
    background:radial-gradient(400px circle at var(--lumina-x,50%) var(--lumina-y,50%),rgba(255,255,255,.105),rgba(255,255,255,.041) 38%,transparent 88%);
  }
}
@media (min-width:701px) and (max-height:620px) {
  #case-modal .case-modal-window { width: min(1000px,calc(100vw - 32px)); }
}
@media (max-width: 700px) {
  #case-modal { padding: 12px !important; }
  #case-modal .case-modal-window { width: calc(100vw - 24px); max-height: calc(100dvh - 24px); height: auto; }
  #case-modal.open .case-modal-window { touch-action: pan-y; }
  #case-modal .case-modal-content { max-height: calc(100dvh - 26px); padding: 0; grid-template-columns: minmax(0,1fr); gap: 0; }
  #case-modal .case-modal-copy { grid-column: 1; grid-row: auto; padding: 22px 20px 20px; border-left: 0; }
  #case-modal .case-modal-kicker, #case-modal h2 { padding-right: 48px; }
  #case-modal h2 { font-size: 32px; }
  #case-modal .case-modal-sidebar { margin-top: 14px; gap: 14px; }
  #case-modal .case-modal-visual { grid-column: 1; grid-row: auto; }
  #case-modal .case-modal-story { grid-column: 1; grid-row: auto; padding: 16px 20px 20px; }
  #case-modal .case-modal-media { border-radius: 0; }
  #case-modal .case-modal-actions { gap: 8px; }
  #case-modal .case-modal-action { font-size: 12px; padding: 10px; gap: 6px; }
  #case-modal .case-modal-close { top: 14px !important; right: 14px !important; }
  html body #case-modal .case-modal-close { background:#303034 !important; }
}
@media (prefers-reduced-motion: reduce) {
  #case-modal { transition:none !important; }
  #case-modal::before, #case-modal .case-modal-window { transition:none !important; }
  #case-modal .case-modal-window.case-entering { animation:none !important; }
  #case-modal .case-section-panel, #case-modal .case-section-panel p { transition: none; }
  #case-modal :is(.case-modal-window,.case-modal-copy) > .lumina-layer { display: none !important; }
}
