/* REVIEW R100 — evidence-room opening. No network assets, no audio. */
body.review-cinematic-page{
  --rc-duration:17.5s;
  --rc-ease:cubic-bezier(.22,.74,.19,1);
}
body.rc-running{overflow:hidden;overscroll-behavior:none}
.review-site{min-height:100%;background:#fff}
body.rc-running .review-site{
  visibility:hidden;
  opacity:0;
  pointer-events:none;
  user-select:none;
}
body.rc-running.rc-play .review-site{
  animation:rcSiteReveal var(--rc-duration) linear both;
}
.review-cinematic{
  position:fixed;
  inset:0;
  z-index:2147483000;
  overflow:hidden;
  background:transparent;
  color:#15191e;
  font-family:system-ui,-apple-system,"Segoe UI",Arial,sans-serif;
  isolation:isolate;
  contain:layout paint style;
}
body:not(.rc-running) .review-cinematic{display:none}
.rc-lightbox{
  position:absolute;
  inset:0;
  overflow:hidden;
  background:
    radial-gradient(circle at 50% 44%,#fff 0 23%,rgba(255,255,255,.96) 42%,rgba(236,239,242,.98) 100%);
}
.rc-lightbox::before{
  --rc-texture-opacity:.52;
  content:"";
  position:absolute;
  inset:0;
  opacity:.52;
  pointer-events:none;
  background-image:
    linear-gradient(rgba(21,25,30,.055) 1px,transparent 1px),
    linear-gradient(90deg,rgba(21,25,30,.055) 1px,transparent 1px);
  background-size:44px 44px;
  -webkit-mask-image:radial-gradient(circle at center,#000 15%,rgba(0,0,0,.8) 55%,transparent 100%);
  mask-image:radial-gradient(circle at center,#000 15%,rgba(0,0,0,.8) 55%,transparent 100%);
}
.rc-lightbox::after{
  --rc-texture-opacity:.22;
  content:"";
  position:absolute;
  inset:0;
  opacity:.22;
  mix-blend-mode:multiply;
  pointer-events:none;
  background-image:radial-gradient(circle at 20% 30%,rgba(17,21,26,.16) 0 .55px,transparent .7px);
  background-size:5px 5px;
}
.rc-frame{
  position:absolute;
  inset:clamp(20px,3.1vw,58px);
  border:1px solid rgba(71,81,92,.32);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.95),0 30px 110px rgba(26,34,43,.12);
}
.rc-frame::before,.rc-frame::after{
  content:"";
  position:absolute;
  width:84px;
  height:2px;
  top:50%;
  background:linear-gradient(90deg,var(--review-red,#ad1832) 0 48%,transparent 48% 52%,var(--review-blue,#174b92) 52%);
  opacity:.74;
}
.rc-frame::before{left:-43px}.rc-frame::after{right:-43px}
.rc-meta{
  position:absolute;
  z-index:8;
  left:clamp(34px,5vw,92px);
  right:clamp(34px,5vw,92px);
  top:clamp(32px,4.8vw,82px);
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:20px;
  color:#4c5661;
  font:750 clamp(.62rem,.68vw,.76rem)/1.5 ui-monospace,SFMono-Regular,Consolas,monospace;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.rc-meta strong{display:block;color:#171c21;font-size:1.05em}
.rc-meta-right{text-align:right}
.rc-table{
  position:absolute;
  inset:clamp(98px,11vh,150px) clamp(28px,5vw,108px) clamp(88px,10vh,128px);
  display:grid;
  place-items:center;
  perspective:1700px;
}
.rc-dossier{
  position:relative;
  width:min(1220px,84vw);
  height:min(600px,62vh);
  min-height:420px;
}
.rc-sheet{
  position:absolute;
  top:50%;
  left:50%;
  width:min(31%,370px);
  height:min(88%,530px);
  min-height:390px;
  padding:clamp(22px,2vw,34px);
  border:1px solid #aeb6bf;
  border-top:5px solid #171c21;
  border-radius:2px 2px 13px 13px;
  background:#fff;
  box-shadow:0 34px 74px rgba(20,28,36,.17),0 3px 0 rgba(255,255,255,.95) inset;
  transform-origin:50% 55%;
  opacity:0;
  overflow:hidden;
  backface-visibility:hidden;
}
.rc-sheet::after{
  content:attr(data-file);
  position:absolute;
  right:18px;
  bottom:16px;
  color:#747d87;
  font:700 .58rem/1 ui-monospace,SFMono-Regular,Consolas,monospace;
  letter-spacing:.11em;
}
.rc-sheet-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;padding-bottom:17px;border-bottom:1px solid #c9cfd5}
.rc-sheet-label{font:850 .7rem/1.25 system-ui,sans-serif;letter-spacing:.18em;text-transform:uppercase}
.rc-sheet-number{font:700 .68rem/1 ui-monospace,monospace;color:#69727c}
.rc-sheet h2{margin:26px 0 12px;font:600 clamp(1.75rem,2vw,2.5rem)/1.04 Georgia,"Times New Roman",serif;letter-spacing:-.04em}
.rc-sheet p{margin:0;color:#4c5661;font-size:clamp(.78rem,.82vw,.94rem);line-height:1.6}
.rc-rule{height:1px;margin:24px 0;background:#c8ced5}
.rc-line{height:8px;margin:10px 0;border-radius:1px;background:#e7eaed}
.rc-line.short{width:64%}.rc-line.mid{width:82%}
.rc-redaction{height:10px;margin:11px 0;background:#191d22;border-radius:1px}
.rc-redaction.short{width:54%}.rc-redaction.mid{width:78%}
.rc-stamp{
  position:absolute;
  left:clamp(20px,2vw,32px);
  bottom:clamp(28px,3vw,47px);
  padding:8px 12px;
  border:2px solid currentColor;
  color:#922139;
  font:900 .68rem/1 ui-monospace,monospace;
  letter-spacing:.12em;
  transform:rotate(-5deg);
  text-transform:uppercase;
}
.rc-sheet--source{--slot:-1}
.rc-sheet--response{--slot:0}
.rc-sheet--result{--slot:1}
.rc-play .rc-sheet--source{animation:rcSource var(--rc-duration) var(--rc-ease) both}
.rc-play .rc-sheet--response{animation:rcResponse var(--rc-duration) var(--rc-ease) both}
.rc-play .rc-sheet--result{animation:rcResult var(--rc-duration) var(--rc-ease) both}
.rc-focus-label{
  position:absolute;
  left:50%;
  bottom:-36px;
  transform:translateX(-50%);
  color:#22282f;
  font:800 .66rem/1 ui-monospace,monospace;
  letter-spacing:.18em;
  text-transform:uppercase;
  opacity:0;
  white-space:nowrap;
}
.rc-play .rc-focus-label{animation:rcFocusLabel var(--rc-duration) linear both}
.rc-scanner{
  position:absolute;
  z-index:7;
  left:5%;
  right:5%;
  top:4%;
  height:3px;
  opacity:0;
  background:linear-gradient(90deg,transparent 0 5%,#174b92 20%,#fff 50%,#ad1832 80%,transparent 95%);
  box-shadow:0 0 18px rgba(23,75,146,.65),0 0 34px rgba(173,24,50,.35);
}
.rc-scanner::after{
  content:"CROSS-CHECK / SOURCE → RESPONSE → RESULT";
  position:absolute;
  right:0;
  top:11px;
  color:#47515c;
  font:750 .58rem/1 ui-monospace,monospace;
  letter-spacing:.12em;
  white-space:nowrap;
}
.rc-play .rc-scanner{animation:rcScanner var(--rc-duration) linear both}
.rc-review-lock{
  position:absolute;
  z-index:9;
  inset:0;
  display:grid;
  place-content:center;
  text-align:center;
  opacity:0;
  pointer-events:none;
}
.rc-review-kicker{
  margin:0 0 clamp(15px,2vh,25px);
  color:#4c5661;
  font:850 clamp(.62rem,.78vw,.82rem)/1.4 ui-monospace,monospace;
  letter-spacing:.24em;
  text-transform:uppercase;
}
.rc-review-word{
  display:flex;
  justify-content:center;
  gap:clamp(0px,.75vw,13px);
  margin:0;
  color:#11151a;
  font:900 clamp(5.2rem,15vw,15rem)/.72 system-ui,-apple-system,"Segoe UI",sans-serif;
  letter-spacing:-.075em;
  text-transform:uppercase;
}
.rc-review-word span{display:inline-block;opacity:0;filter:blur(12px);transform:translateY(16px) scale(.94)}
.rc-review-sub{
  margin:clamp(24px,4vh,45px) 0 0;
  color:#313943;
  font:650 clamp(.88rem,1.1vw,1.2rem)/1.5 Georgia,"Times New Roman",serif;
  letter-spacing:.045em;
}
.rc-review-metrics{
  display:flex;
  justify-content:center;
  gap:clamp(14px,3vw,48px);
  margin-top:clamp(19px,3vh,35px);
  color:#5a646f;
  font:750 clamp(.58rem,.69vw,.72rem)/1.3 ui-monospace,monospace;
  letter-spacing:.11em;
  text-transform:uppercase;
}
.rc-review-metrics span+span{position:relative}.rc-review-metrics span+span::before{content:"";position:absolute;left:calc(clamp(14px,3vw,48px)/-2);top:50%;width:1px;height:18px;background:#bcc3ca;transform:translateY(-50%)}
.rc-play .rc-review-lock{animation:rcLock var(--rc-duration) linear both}
.rc-play .rc-review-word span{animation:rcLetter var(--rc-duration) var(--rc-ease) both}
.rc-play .rc-review-word span:nth-child(2){animation-delay:.09s}.rc-play .rc-review-word span:nth-child(3){animation-delay:.18s}.rc-play .rc-review-word span:nth-child(4){animation-delay:.27s}.rc-play .rc-review-word span:nth-child(5){animation-delay:.36s}.rc-play .rc-review-word span:nth-child(6){animation-delay:.45s}
.rc-aperture{
  position:absolute;
  z-index:12;
  inset:0;
  pointer-events:none;
  opacity:0;
}
.rc-aperture::before,.rc-aperture::after{
  content:"";
  position:absolute;
  top:0;
  bottom:0;
  width:50.2%;
  background:#f7f8f9;
  box-shadow:0 0 55px rgba(20,28,36,.10);
}
.rc-aperture::before{left:0;border-right:1px solid rgba(173,24,50,.45)}
.rc-aperture::after{right:0;border-left:1px solid rgba(23,75,146,.45)}
.rc-play .rc-aperture{animation:rcApertureShow var(--rc-duration) linear both}
.rc-play .rc-aperture::before{animation:rcApertureLeft var(--rc-duration) var(--rc-ease) both}
.rc-play .rc-aperture::after{animation:rcApertureRight var(--rc-duration) var(--rc-ease) both}
.rc-controls{
  position:absolute;
  z-index:30;
  right:max(18px,env(safe-area-inset-right));
  bottom:max(18px,env(safe-area-inset-bottom));
  display:flex;
  align-items:center;
  gap:8px;
  padding:7px;
  border:1px solid rgba(104,114,124,.48);
  border-radius:999px;
  background:rgba(255,255,255,.88);
  box-shadow:0 16px 50px rgba(20,28,36,.16);
  -webkit-backdrop-filter:blur(14px);
  backdrop-filter:blur(14px);
}
.rc-controls button{
  min-height:40px;
  padding:8px 14px;
  border:0;
  border-radius:999px;
  background:transparent;
  color:#1f252c;
  font:780 .72rem/1 system-ui,sans-serif;
  letter-spacing:.04em;
}
.rc-controls button:hover{background:#edf0f3}.rc-controls button:focus-visible{outline:3px solid #172b46;outline-offset:2px}
.rc-status{
  position:absolute;
  z-index:15;
  left:max(20px,env(safe-area-inset-left));
  bottom:max(24px,env(safe-area-inset-bottom));
  margin:0;
  color:#59636e;
  font:750 .62rem/1.4 ui-monospace,monospace;
  letter-spacing:.13em;
  text-transform:uppercase;
}
.rc-timeline{position:absolute;width:1px;height:1px;opacity:.001;pointer-events:none}
.rc-play .rc-timeline{animation:rcTimeline var(--rc-duration) linear both}
.rc-play .rc-lightbox{animation:rcLightbox var(--rc-duration) linear both}
.rc-play .rc-lightbox::before,.rc-play .rc-lightbox::after{animation:rcTexture var(--rc-duration) linear both}
.rc-play .rc-frame{animation:rcFrame var(--rc-duration) linear both}
.rc-play .rc-meta{animation:rcMeta var(--rc-duration) linear both}
body.rc-paused .review-cinematic *,body.rc-paused .review-cinematic *::before,body.rc-paused .review-cinematic *::after,body.rc-paused .review-site{animation-play-state:paused!important}

@keyframes rcSource{
  0%,4%{opacity:0;transform:translate(-88%,-47%) rotate(-7deg) scale(.84);filter:blur(14px)}
  11%,42%{opacity:1;transform:translate(-155%,-50%) rotate(-2.2deg) scale(1);filter:none}
  56%{opacity:1;transform:translate(-118%,-50%) rotate(-.7deg) scale(.92);filter:none}
  66%{opacity:.34;transform:translate(-72%,-50%) rotate(0) scale(.82);filter:blur(2px)}
  70%,100%{opacity:0;transform:translate(-50%,-50%) scale(.74);filter:blur(10px)}
}
@keyframes rcResponse{
  0%,13%{opacity:0;transform:translate(-50%,-22%) rotate(4deg) scale(.85);filter:blur(15px)}
  21%,46%{opacity:1;transform:translate(-50%,-50%) rotate(.8deg) scale(1.035);filter:none}
  56%{opacity:1;transform:translate(-50%,-50%) rotate(0) scale(.96);filter:none}
  66%{opacity:.4;transform:translate(-50%,-50%) scale(.84);filter:blur(2px)}
  70%,100%{opacity:0;transform:translate(-50%,-50%) scale(.74);filter:blur(10px)}
}
@keyframes rcResult{
  0%,23%{opacity:0;transform:translate(-12%,-49%) rotate(7deg) scale(.84);filter:blur(14px)}
  31%,49%{opacity:1;transform:translate(55%,-50%) rotate(2.1deg) scale(1);filter:none}
  56%{opacity:1;transform:translate(18%,-50%) rotate(.7deg) scale(.92);filter:none}
  66%{opacity:.34;transform:translate(-28%,-50%) rotate(0) scale(.82);filter:blur(2px)}
  70%,100%{opacity:0;transform:translate(-50%,-50%) scale(.74);filter:blur(10px)}
}
@keyframes rcFocusLabel{0%,9%{opacity:0}12%,51%{opacity:1}57%,100%{opacity:0}}
@keyframes rcScanner{
  0%,34%{opacity:0;transform:translateY(0)}
  36%{opacity:.9;transform:translateY(0)}
  52%{opacity:.9;transform:translateY(calc(min(600px,62vh) - 30px))}
  55%,100%{opacity:0;transform:translateY(calc(min(600px,62vh) - 30px))}
}
@keyframes rcLock{0%,59%{opacity:0;transform:scale(.96);filter:blur(12px)}66%,84%{opacity:1;transform:scale(1);filter:none}89%,100%{opacity:0;transform:scale(1.045);filter:blur(7px)}}
@keyframes rcLetter{0%,60%{opacity:0;filter:blur(14px);transform:translateY(20px) scale(.92)}68%,84%{opacity:1;filter:none;transform:none}89%,100%{opacity:0;filter:blur(8px);transform:scale(1.04)}}
@keyframes rcApertureShow{0%,84%{opacity:0}84.1%,100%{opacity:1}}
@keyframes rcApertureLeft{0%,84%{transform:translateX(0)}100%{transform:translateX(-104%)}}
@keyframes rcApertureRight{0%,84%{transform:translateX(0)}100%{transform:translateX(104%)}}
@keyframes rcSiteReveal{
  0%,84%{visibility:hidden;opacity:0;transform:scale(1.012);filter:blur(5px)}
  84.1%{visibility:visible;opacity:1;transform:scale(1.012);filter:blur(5px)}
  100%{visibility:visible;opacity:1;transform:none;filter:none}
}
/* At the handoff the evidence-room field becomes transparent while two opaque
   aperture leaves continue to cover the page. Their outward travel reveals the
   actual site from the center instead of fading through an empty white frame. */
@keyframes rcLightbox{
  0%,84%{background:radial-gradient(circle at 50% 44%,#fff 0 23%,rgba(255,255,255,.96) 42%,rgba(236,239,242,.98) 100%)}
  84.1%,100%{background:transparent}
}
@keyframes rcTexture{0%,82%{opacity:var(--rc-texture-opacity,.52)}84%,100%{opacity:0}}
@keyframes rcFrame{0%,2%{opacity:0;transform:scale(.985)}7%,84%{opacity:1;transform:none}100%{opacity:0;transform:scale(1.035)}}
@keyframes rcMeta{0%,3%{opacity:0;transform:translateY(-8px)}8%,82%{opacity:1;transform:none}89%,100%{opacity:0;transform:translateY(-8px)}}
@keyframes rcTimeline{from{opacity:.001}to{opacity:.002}}

@media(max-width:900px){
  .rc-meta{left:24px;right:24px;top:24px;font-size:.58rem}
  .rc-frame{inset:14px}
  .rc-table{inset:84px 18px 80px}
  .rc-dossier{width:94vw;height:66vh;min-height:440px}
  .rc-sheet{width:min(44%,320px);height:min(74%,470px);min-height:350px;padding:22px}
  .rc-sheet h2{font-size:1.7rem}
  @keyframes rcSource{
    0%,4%{opacity:0;transform:translate(-100%,-55%) rotate(-6deg) scale(.84);filter:blur(12px)}
    11%,42%{opacity:1;transform:translate(-105%,-54%) rotate(-2deg) scale(.96);filter:none}
    56%{opacity:1;transform:translate(-86%,-50%) rotate(-.5deg) scale(.88);filter:none}
    66%{opacity:.3;transform:translate(-65%,-50%) scale(.78);filter:blur(2px)}
    70%,100%{opacity:0;transform:translate(-50%,-50%) scale(.7);filter:blur(9px)}
  }
  @keyframes rcResponse{
    0%,13%{opacity:0;transform:translate(-50%,-30%) rotate(4deg) scale(.84);filter:blur(12px)}
    21%,46%{opacity:1;transform:translate(-50%,-50%) rotate(.5deg) scale(1);filter:none}
    56%{opacity:1;transform:translate(-50%,-50%) scale(.9);filter:none}
    66%{opacity:.36;transform:translate(-50%,-50%) scale(.8);filter:blur(2px)}
    70%,100%{opacity:0;transform:translate(-50%,-50%) scale(.7);filter:blur(9px)}
  }
  @keyframes rcResult{
    0%,23%{opacity:0;transform:translate(0,-53%) rotate(6deg) scale(.84);filter:blur(12px)}
    31%,49%{opacity:1;transform:translate(5%,-46%) rotate(2deg) scale(.96);filter:none}
    56%{opacity:1;transform:translate(-14%,-50%) rotate(.5deg) scale(.88);filter:none}
    66%{opacity:.3;transform:translate(-35%,-50%) scale(.78);filter:blur(2px)}
    70%,100%{opacity:0;transform:translate(-50%,-50%) scale(.7);filter:blur(9px)}
  }
}
@media(max-width:560px){
  body.review-cinematic-page{--rc-duration:16.5s}
  .rc-lightbox::before{background-size:30px 30px}
  .rc-frame{inset:8px}
  .rc-frame::before,.rc-frame::after{display:none}
  .rc-meta{left:18px;right:18px;top:18px;font-size:.5rem;letter-spacing:.09em}
  .rc-meta-right span{display:none}
  .rc-table{inset:68px 10px 76px}
  .rc-dossier{width:100%;height:70vh;min-height:430px}
  .rc-sheet{width:min(78vw,300px);height:min(63vh,450px);min-height:340px;padding:20px}
  .rc-sheet h2{font-size:1.6rem}
  .rc-sheet p{font-size:.76rem}
  .rc-sheet--source,.rc-sheet--response,.rc-sheet--result{left:50%;top:50%}
  .rc-scanner{left:10%;right:10%}.rc-scanner::after{font-size:.48rem;right:auto;left:0}
  .rc-review-word{font-size:clamp(4.25rem,24vw,7.2rem);letter-spacing:-.09em;gap:0}
  .rc-review-kicker{font-size:.52rem;letter-spacing:.16em}
  .rc-review-sub{font-size:.9rem;margin-inline:28px}
  .rc-review-metrics{gap:12px;flex-wrap:wrap;margin-inline:20px;font-size:.5rem}.rc-review-metrics span+span::before{display:none}
  .rc-controls{right:10px;bottom:max(10px,env(safe-area-inset-bottom));gap:2px}.rc-controls button{padding-inline:10px;font-size:.65rem}
  .rc-status{left:13px;bottom:68px;font-size:.49rem;max-width:58vw}
  @keyframes rcSource{
    0%,4%{opacity:0;transform:translate(-62%,-40%) rotate(-5deg) scale(.82);filter:blur(10px)}
    11%,18%{opacity:1;transform:translate(-54%,-50%) rotate(-1deg) scale(.97);filter:none}
    24%,42%{opacity:.16;transform:translate(-62%,-55%) rotate(-3deg) scale(.88);filter:blur(1px)}
    56%{opacity:.18;transform:translate(-58%,-54%) scale(.78);filter:blur(2px)}
    68%,100%{opacity:0;transform:translate(-50%,-50%) scale(.68);filter:blur(8px)}
  }
  @keyframes rcResponse{
    0%,14%{opacity:0;transform:translate(-46%,-38%) rotate(4deg) scale(.82);filter:blur(10px)}
    21%,29%{opacity:1;transform:translate(-50%,-50%) rotate(.5deg) scale(.97);filter:none}
    35%,46%{opacity:.18;transform:translate(-42%,-54%) rotate(3deg) scale(.88);filter:blur(1px)}
    56%{opacity:.2;transform:translate(-45%,-52%) scale(.8);filter:blur(2px)}
    68%,100%{opacity:0;transform:translate(-50%,-50%) scale(.68);filter:blur(8px)}
  }
  @keyframes rcResult{
    0%,26%{opacity:0;transform:translate(-56%,-38%) rotate(-4deg) scale(.82);filter:blur(10px)}
    32%,49%{opacity:1;transform:translate(-50%,-50%) rotate(-.6deg) scale(.97);filter:none}
    56%{opacity:.23;transform:translate(-48%,-50%) scale(.82);filter:blur(2px)}
    68%,100%{opacity:0;transform:translate(-50%,-50%) scale(.68);filter:blur(8px)}
  }
}
@media(prefers-reduced-motion:reduce){
  body.review-cinematic-page{--rc-duration:4.8s}
  .rc-sheet,.rc-review-word span,.rc-review-lock,.rc-frame,.rc-meta,.rc-lightbox,.review-site{animation-timing-function:linear!important}
  .rc-play .rc-sheet--source{animation-name:rcSourceReduced}
  .rc-play .rc-sheet--response{animation-name:rcResponseReduced}
  .rc-play .rc-sheet--result{animation-name:rcResultReduced}
  .rc-play .rc-scanner{animation-name:rcScannerReduced}
  @keyframes rcSourceReduced{0%,5%{opacity:0;transform:translate(-150%,-50%)}15%,50%{opacity:1;transform:translate(-150%,-50%)}65%,100%{opacity:0;transform:translate(-150%,-50%)}}
  @keyframes rcResponseReduced{0%,15%{opacity:0;transform:translate(-50%,-50%)}25%,50%{opacity:1;transform:translate(-50%,-50%)}65%,100%{opacity:0;transform:translate(-50%,-50%)}}
  @keyframes rcResultReduced{0%,25%{opacity:0;transform:translate(50%,-50%)}35%,50%{opacity:1;transform:translate(50%,-50%)}65%,100%{opacity:0;transform:translate(50%,-50%)}}
  @keyframes rcScannerReduced{0%,36%{opacity:0}42%,53%{opacity:.75;transform:translateY(18vh)}58%,100%{opacity:0;transform:translateY(18vh)}}
}
@media print{.review-cinematic{display:none!important}.review-site{visibility:visible!important;opacity:1!important;clip-path:none!important;filter:none!important;transform:none!important}}
