/* Campaign views keep the existing dialogue presentation and legacy rooms.
   The generated binder's readable source area is 470,210,680,620 / 1448,1086. */
.shade:has(>.campaign-inspection),
.shade:has(>.campaign-cinematic),
.shade:has(>.campaign-completion){
  position:fixed;
  inset:0;
  z-index:30;
  padding:max(8px,env(safe-area-inset-top)) max(8px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));
  background:rgba(8,12,18,.96);
  overflow:hidden;
}
.campaign-inspection.panel,
.campaign-cinematic.panel,
.campaign-completion.panel{
  border:0;
  border-radius:0;
  box-shadow:none;
  background:none;
  width:min(1120px,100%);
  max-height:100%;
  min-height:0;
}
.campaign-inspection>.panel-header,
.campaign-cinematic>.panel-header,
.campaign-completion>.panel-header{display:none}
.campaign-inspection>.panel-content{
  display:flex;
  align-items:center;
  flex-direction:column;
  gap:0;
  padding:0;
  min-height:0;
  overflow:auto;
  overscroll-behavior:contain;
  scrollbar-width:thin;
  scrollbar-color:#8b826e transparent;
}
.campaign-sheet{
  position:relative;
  width:100%;
  max-width:1060px;
  aspect-ratio:4/3;
  flex:none;
  color:#302d27;
  background-repeat:no-repeat;
  background-size:100% 100%;
  background-position:center;
  overflow:hidden;
  isolation:isolate;
  image-rendering:pixelated;
}
.campaign-paper-content{
  position:absolute;
  left:32.458564%;
  top:19.337017%;
  width:46.961326%;
  height:57.090239%;
  padding:0 8px 12px 0;
  overflow:auto;
  overscroll-behavior:contain;
  scrollbar-width:thin;
  scrollbar-color:#9a8c70 transparent;
  touch-action:pan-y pinch-zoom;
  image-rendering:auto;
}
.campaign-paper-content h2,
.campaign-sheet>h2{
  color:#2e2a25;
  font-family:Nanum,sans-serif;
  font-size:clamp(16px,1.7vw,21px);
  line-height:1.55;
  font-weight:700;
  letter-spacing:0;
  overflow-wrap:anywhere;
  margin:0 0 18px;
}
.campaign-paper-body{
  color:#373129;
  font-family:Nanum,sans-serif;
  font-size:clamp(14px,1.35vw,17px);
  line-height:1.85;
  white-space:pre-wrap;
  word-break:keep-all;
  overflow-wrap:anywhere;
  font-variant-numeric:tabular-nums;
  text-shadow:none;
  letter-spacing:0;
}
/* Compatibility until both document builders add the shared content wrapper. */
.campaign-sheet>h2{position:absolute;left:32.458564%;top:19.337017%;width:46.961326%;max-height:12%;overflow:auto}
.campaign-sheet>.campaign-paper-body{position:absolute;left:32.458564%;top:33%;width:46.961326%;height:43%;overflow:auto;padding-right:8px}
.campaign-sheet.zoomed{width:125%;max-width:none;aspect-ratio:4/3}
.campaign-sheet.zoomed .campaign-paper-body{font-size:clamp(17px,1.8vw,21px)}
.campaign-sheet.zoomed .campaign-paper-content h2{font-size:clamp(20px,2vw,25px)}
.campaign-inspection>.panel-actions{
  flex:none;
  width:100%;
  min-height:56px;
  padding:6px 12px;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:center;
  gap:2px 18px;
  background:linear-gradient(0deg,#080c12,rgba(8,12,18,.85));
  border:0;
}
.campaign-inspection .panel-actions button,
.campaign-completion .panel-actions button,
.campaign-cinematic .panel-actions button{
  min-height:44px;
  min-width:44px;
  padding:8px 6px;
  font:15px/1.5 Nanum,sans-serif;
  background:none;
  border:0;
  border-radius:0;
  box-shadow:none;
  color:#e7e0ce;
  text-align:center;
  touch-action:manipulation;
  -webkit-tap-highlight-color:transparent;
}
.campaign-inspection .panel-actions button:hover,
.campaign-inspection .panel-actions button:focus-visible,
.campaign-completion .panel-actions button:hover,
.campaign-completion .panel-actions button:focus-visible,
.campaign-cinematic .panel-actions button:hover,
.campaign-cinematic .panel-actions button:focus-visible{
  color:#f7d998;
  outline:0;
  text-decoration:underline;
  text-decoration-thickness:2px;
  text-underline-offset:5px;
}
.campaign-inspection .panel-actions button:disabled{opacity:.4}
.campaign-back{
  display:grid;
  place-items:center;
  margin-right:auto;
}
.campaign-back .thick-back-arrow,
.campaign-back svg{display:block;width:32px;height:32px;fill:currentColor}
.campaign-back span{font-family:Arial,sans-serif;font-size:32px;font-weight:900;line-height:1}
.campaign-back:active{transform:translateX(-2px)}
.legacy-evidence-reader .panel-content{overflow:auto;touch-action:pan-y pinch-zoom}
.legacy-evidence-reader .legacy-evidence-image{display:block;width:auto;max-width:100%;height:auto;max-height:60svh;margin:0 auto 12px;object-fit:contain}
.legacy-evidence-reader .legacy-evidence-image.legacy-evidence-zoomed{max-height:none;width:100%;max-width:none}
.legacy-evidence-transcript{margin:12px auto;max-width:780px;white-space:pre-line}
.legacy-evidence-transcript summary{min-height:44px;display:flex;align-items:center;cursor:pointer}
.legacy-evidence-transcript h3{font-size:17px;line-height:1.6}
.legacy-evidence-transcript p{font-size:16px;line-height:1.85;white-space:pre-line;overflow-wrap:anywhere}
.investigation-book:is(.campaign-book,.campaign-compare,[data-page="campaign-notebook"],[data-page="campaign-compare"]){
  width:min(1040px,calc(100vw - 16px),calc((100svh - 16px)*4/3));
  height:auto;
  aspect-ratio:4/3;
  color:#383025;
}
.investigation-book:is(.campaign-book,.campaign-compare,[data-page="campaign-notebook"],[data-page="campaign-compare"]) .book-left,
.investigation-book:is(.campaign-book,.campaign-compare,[data-page="campaign-notebook"],[data-page="campaign-compare"]) .book-right{
  top:20%;
  height:53%;
  font:clamp(14px,1.35vw,17px)/1.8 Nanum,sans-serif;
  color:#383025;
  overscroll-behavior:contain;
  touch-action:pan-y pinch-zoom;
  padding-right:6px;
}
.investigation-book:is(.campaign-book,.campaign-compare,[data-page="campaign-notebook"],[data-page="campaign-compare"]) :is(.book-left,.book-right) h2{
  font-size:clamp(16px,1.7vw,21px);
  line-height:1.55;
  letter-spacing:0;
  margin:0 0 16px;
  color:#383025;
}
.investigation-book:is(.campaign-book,.campaign-compare,[data-page="campaign-notebook"],[data-page="campaign-compare"]) :is(.book-left,.book-right) p{
  font:inherit;
  line-height:1.85;
  color:inherit;
  overflow-wrap:anywhere;
  white-space:pre-line;
}
.investigation-book:is(.campaign-book,.campaign-compare,[data-page="campaign-notebook"],[data-page="campaign-compare"]) .book-support-entry{
  grid-template-columns:62px minmax(0,1fr);
  gap:12px;
  min-height:76px;
  margin-bottom:8px;
  padding:2px 0;
  font:inherit;
  line-height:1.6;
  color:#3d3429;
  border:0;
  background:none;
  box-shadow:none;
}
.investigation-book:is(.campaign-book,.campaign-compare,[data-page="campaign-notebook"],[data-page="campaign-compare"]) .book-support-entry>img{
  width:62px;
  height:64px;
  object-fit:contain;
  image-rendering:pixelated;
  transform:rotate(-2deg);
}
.investigation-book[data-page="campaign-compare"] .book-source-heading{font:inherit;font-weight:700;color:inherit;margin:16px 0 8px}
.proof-chain-source strong,.proof-chain-source span{display:block}
.proof-chain-source span{font-size:.9em;font-weight:400}
.proof-chain-linked .proof-chain-empty{margin:7px 0;opacity:.65}
.proof-chain-linked .proof-chain-link{font-size:.95em}
.proof-chain-confirm:disabled{opacity:.4;cursor:default}
.investigation-book[data-page="campaign-compare"] .book-claim{
  font:inherit;
  min-height:52px;
  padding:9px 2px 9px 23px;
  color:#3a3025;
  background:none;
  border:0;
  box-shadow:none;
  white-space:normal;
  line-height:1.75;
}
.investigation-book[data-page="campaign-compare"] .book-claim:before{top:10px}
.investigation-book:is(.campaign-book,.campaign-compare,[data-page="campaign-notebook"],[data-page="campaign-compare"]) :is(.book-stage-label,.book-stage-turn){display:none}
.investigation-book:is(.campaign-book,.campaign-compare,[data-page="campaign-notebook"],[data-page="campaign-compare"]) .book-tools{
  top:10%;
  min-height:44px;
  height:auto;
}
.investigation-book:is(.campaign-book,.campaign-compare,[data-page="campaign-notebook"],[data-page="campaign-compare"]) .book-tools button{min-width:44px;min-height:44px;font-size:15px}
.investigation-book:is(.campaign-book,.campaign-compare,[data-page="campaign-notebook"],[data-page="campaign-compare"]) .book-page-actions{
  bottom:12%;
  min-height:44px;
  gap:3px 14px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.investigation-book:is(.campaign-book,.campaign-compare,[data-page="campaign-notebook"],[data-page="campaign-compare"]) .book-page-actions button{
  min-width:44px;
  min-height:44px;
  padding:7px 0;
  font-size:14px;
  line-height:1.5;
  color:#44392b;
  text-decoration:none;
  touch-action:manipulation;
}
.investigation-book:is(.campaign-book,.campaign-compare,[data-page="campaign-notebook"],[data-page="campaign-compare"]) button:hover,
.investigation-book:is(.campaign-book,.campaign-compare,[data-page="campaign-notebook"],[data-page="campaign-compare"]) button:focus-visible{
  color:#754825;
  outline:0;
  text-decoration:underline;
  text-decoration-thickness:2px;
  text-underline-offset:4px;
}
.campaign-cinematic.panel{width:100%;height:100%}
.campaign-cinematic>.panel-content{display:grid;place-items:center;padding:0;height:100%;min-height:0;overflow:hidden}
.campaign-cinematic>.panel-content>img{display:block;width:100%;height:100%;max-height:calc(100svh - 70px);object-fit:contain;image-rendering:pixelated}
.campaign-cinematic>.panel-actions{position:absolute;bottom:0;left:0;right:0;display:flex;justify-content:flex-end;padding:14px 6%;border:0;background:linear-gradient(0deg,#080c12da,transparent)}
.campaign-cinematic .cinematic-next{font-size:17px;min-width:72px}
.campaign-cg-sequence .cinematic-frames{position:relative;display:grid;place-items:center;width:100%;height:100%;overflow:hidden}
.campaign-cg-sequence .cinematic-frames[hidden],.campaign-cg-sequence .panel-actions button[hidden]{display:none}
.campaign-cg-sequence .cinematic-frames>img{grid-area:1/1;display:block;width:100%;height:100%;max-height:100svh;object-fit:contain;image-rendering:pixelated;pointer-events:none;will-change:opacity,transform}
.campaign-cg-sequence .cinematic-frames>img:not(:first-child){position:absolute;inset:0}
.campaign-cg-sequence>.panel-actions{gap:24px;min-height:64px;padding-bottom:max(14px,env(safe-area-inset-bottom))}
.campaign-cg-sequence .panel-actions button{min-width:72px;min-height:44px;font-size:17px}
.campaign-cg-sequence.cinematic-manual .cinematic-frames>img{will-change:auto;transform:none!important}
@media(prefers-reduced-motion:reduce){.campaign-cg-sequence .cinematic-frames>img{will-change:auto;transform:none!important}}
.direction-reduced-motion .campaign-cg-sequence .cinematic-frames>img{will-change:auto;transform:none!important}
.campaign-completion.panel{width:min(780px,100%);text-align:center;padding:24px 4%}
.campaign-completion>.panel-content{padding:0 0 20px;overflow:auto;color:#e8e3d6;font-size:16px;line-height:1.85}
.campaign-completion .completion-kicker{font-size:13px;letter-spacing:2px;color:#cbbd9b;margin:0 0 14px}
.campaign-completion h2{font:400 clamp(25px,3vw,36px)/1.5 Nanum,sans-serif;letter-spacing:2px;color:#f3ead7;margin:0 0 22px}
.campaign-completion>.panel-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 24px;padding:8px 0;border:0;background:none}
@media(max-width:640px) and (orientation:portrait){
  .shade:has(>.campaign-inspection){padding:0}
  .campaign-inspection.panel{width:100%;height:100%;max-height:100%;justify-content:flex-start}
  .campaign-inspection>.panel-content{flex:1;width:100%;align-items:stretch;overflow:hidden}
  .campaign-sheet{width:100%;height:100%;max-width:none;aspect-ratio:auto;background-size:auto 125%;background-position:64% 50%}
  .campaign-paper-content{left:8%;top:11%;width:84%;height:74%;padding-right:8px}
  .campaign-paper-content h2{font-size:19px;line-height:1.55;margin-bottom:18px}
  .campaign-paper-body{font-size:16px;line-height:1.85}
  .campaign-sheet>h2{left:8%;top:11%;width:84%;max-height:15%;font-size:19px}
  .campaign-sheet>.campaign-paper-body{left:8%;top:28%;width:84%;height:56%;font-size:16px}
  .campaign-sheet.zoomed{width:100%;height:100%;aspect-ratio:auto;background-size:auto 150%;background-position:63% 50%}
  .campaign-sheet.zoomed .campaign-paper-body{font-size:20px;line-height:1.9}
  .campaign-sheet.zoomed .campaign-paper-content h2{font-size:23px}
  .campaign-inspection>.panel-actions{padding:5px max(12px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));gap:2px 10px;justify-content:flex-end}
  .campaign-inspection .panel-actions button{font-size:14px}
  .investigation-book:is(.campaign-book,.campaign-compare,[data-page="campaign-notebook"],[data-page="campaign-compare"]){width:100%;height:calc(100svh - 16px);aspect-ratio:auto;background-size:auto 100%!important;background-repeat:no-repeat;background-position:10% 50%}
  .investigation-book:is(.campaign-book,.campaign-compare,[data-page="campaign-notebook"],[data-page="campaign-compare"]) .book-tools{left:12%;right:12%;top:10%;justify-content:flex-end;gap:8px}
  .investigation-book:is(.campaign-book,.campaign-compare,[data-page="campaign-notebook"],[data-page="campaign-compare"]) .book-left{left:12%;top:20%;width:76%;height:31%;font-size:16px}
  .investigation-book:is(.campaign-book,.campaign-compare,[data-page="campaign-notebook"],[data-page="campaign-compare"]) .book-right{left:12%;top:53%;width:76%;height:23%;font-size:16px}
  .investigation-book:is(.campaign-book,.campaign-compare,[data-page="campaign-notebook"],[data-page="campaign-compare"]) :is(.book-left,.book-right) h2{font-size:18px;line-height:1.5;margin-bottom:12px}
  .investigation-book:is(.campaign-book,.campaign-compare,[data-page="campaign-notebook"],[data-page="campaign-compare"]) .book-page-actions{left:12%;right:12%;bottom:calc(10% + 24px);gap:0 16px;min-height:44px}
  .investigation-book:is(.campaign-book,.campaign-compare,[data-page="campaign-notebook"],[data-page="campaign-compare"]) .book-page-actions button{font-size:14px;min-height:44px}
  .investigation-book:is(.campaign-book,.campaign-compare,[data-page="campaign-notebook"],[data-page="campaign-compare"]) .book-support-entry{min-height:62px;grid-template-columns:52px minmax(0,1fr);gap:12px;margin-bottom:5px}
  .investigation-book:is(.campaign-book,.campaign-compare,[data-page="campaign-notebook"],[data-page="campaign-compare"]) .book-support-entry>img{width:52px;height:52px}
  .investigation-book[data-page="campaign-compare"] .book-left{height:29%}
  .investigation-book[data-page="campaign-compare"] .book-right{top:51%;height:27%}
  .investigation-book[data-page="campaign-compare"] .book-claim{font-size:16px;min-height:52px;line-height:1.7;padding:8px 0 8px 22px}
  .campaign-completion.panel{padding:20px 6%}
  .campaign-completion>.panel-actions{gap:2px 18px}
  .campaign-cinematic .cinematic-next{font-size:16px}
}
@media(max-height:500px) and (orientation:landscape){
  .shade:has(>.campaign-inspection){padding:4px}
  .campaign-inspection.panel{width:min(900px,100%);height:100%}
  .campaign-inspection>.panel-content{flex:1}
  .campaign-sheet{width:min(860px,100%)}
  .campaign-paper-content h2{font-size:17px;margin-bottom:12px}
  .campaign-paper-body{font-size:14px;line-height:1.8}
  .campaign-inspection>.panel-actions{min-height:48px;padding:0 12px;gap:0 16px}
  .campaign-inspection .panel-actions button{font-size:14px;min-height:44px}
  .campaign-completion.panel{padding:8px 3%}
  .campaign-completion h2{font-size:25px;margin-bottom:12px}
}
@media(prefers-reduced-motion:reduce){.campaign-sheet,.campaign-back{scroll-behavior:auto;transition:none}}

.shade:has(>.intro-message){position:fixed;inset:0;background:#080c15e8;padding:16px;}
.intro-message.panel{width:min(390px,94vw);max-height:94svh;background:none;border:0;box-shadow:none;padding:0;}
.intro-message>.panel-header{display:none}
.intro-message>.panel-content{padding:0;overflow:auto}
.message-phone{background:#182331;border:8px solid #0c111a;border-radius:36px;padding:40px 24px 30px;box-shadow:0 0 0 2px #677080;position:relative;}
.message-phone:before{content:'';position:absolute;top:13px;left:42%;width:16%;height:6px;background:#080d15;border-radius:4px;}
.message-from{font-size:15px;color:#b5c5d8;margin:0 0 25px;}
.message-text{white-space:pre-wrap;font-size:16px;line-height:1.95;color:#e8edf1;margin:0;}
.intro-message>.panel-actions{justify-content:center;padding-top:20px;background:none;border:0;}
.intro-message button{min-height:44px;border:0;background:none;color:#ece1c4;font-size:16px;}

.shade:has(>.campaign-physical){padding:12px;background:#060b10ed}
.campaign-physical.panel{width:min(1040px,97vw);height:min(760px,94svh);background:none;border:0;box-shadow:none;padding:0}
.campaign-physical>.panel-header{display:none}
.campaign-physical>.panel-content{flex:1;display:flex;flex-direction:column;align-items:center;padding:0;overflow:hidden}
.physical-figure{position:relative;width:100%;flex:1;background-size:contain;background-repeat:no-repeat;background-position:center;aspect-ratio:4/3}
.physical-handle{position:absolute!important;border:0!important;background:transparent!important;box-shadow:none!important;touch-action:none;cursor:grab;min-width:44px;min-height:44px}
.physical-handle:active{cursor:grabbing}
.case .physical-handle{left:10%;top:12%;width:54%;height:56%}
.module .physical-handle{left:7%;top:65%;width:44%;height:22%}
.envelope .physical-handle{left:14%;top:28%;width:68%;height:47%}
.local-display .physical-handle{left:12%;top:64%;width:25%;height:25%}
.local-call .physical-handle{left:41%;top:64%;width:23%;height:25%}
.local-test .physical-handle{left:67%;top:61%;width:12%;height:17%}
.local-lever .physical-handle{left:73%;top:18%;width:17%;height:41%}
.physical-indicator{position:absolute;left:77%;top:69%;width:2.2%;aspect-ratio:1;border-radius:50%;background:#101b0d;pointer-events:none}
.responding .physical-indicator{background:#a7cc76;box-shadow:0 0 10px #78a452}
.local-panel .physical-display{left:27%;top:37%;color:#b4d796;opacity:0;font-size:clamp(10px,1.6vw,17px)}
.local-test.operated .physical-display{opacity:1}
.physical-label,.physical-display{position:absolute;white-space:pre-line;opacity:0;transition:opacity .35s;pointer-events:none}
.physical-label{left:29%;top:47%;color:#302a21;font:bold clamp(12px,1.8vw,22px)/1.5 Nanum,sans-serif;transform:rotate(7deg)}
.physical-display{left:36%;top:21%;color:#b6d0b6;font:clamp(12px,1.7vw,20px)/1.8 monospace}
.case.operated .physical-label,.module.operated .physical-display{opacity:1}
/* Only the unused paper layer in the later operation artwork is hidden. */
.campaign-physical .physical-figure>img.physical-paper{display:none}
.physical-caption{margin:10px 0;color:#dbd9cf;font:16px/1.6 Nanum,sans-serif}
.campaign-physical>.panel-actions{display:flex;justify-content:center;gap:24px;min-height:50px;padding:4px 12px}
.campaign-physical .panel-actions button{min-height:44px;background:none;border:0;color:#e4ddcc;font-size:16px}
@media(max-width:600px){.campaign-physical.panel{height:90svh}.physical-figure{flex:0 1 auto;min-height:230px}.physical-caption{padding:0 12px;font-size:14px}.physical-label{font-size:12px}.physical-display{font-size:12px}.campaign-physical>.panel-content{justify-content:center}}

.campaign-physical>.panel-content{min-height:0}
.physical-figure{flex:0 0 auto;min-height:0;height:auto;width:min(100%,calc((min(760px,94svh) - 136px)*4/3));aspect-ratio:4/3}
@media(max-width:600px){.physical-figure{flex:0 0 auto;min-height:0;width:min(100%,calc((90svh - 148px)*4/3))}}

.shade:has(>.campaign-physical){position:fixed;inset:0;display:grid;place-items:center;max-height:100svh;min-height:0;overflow:hidden}
.campaign-physical.panel{max-height:100%;min-height:0}
.campaign-physical>.panel-content{min-height:0}

.message-contact{display:flex;align-items:center;gap:12px;margin-bottom:25px}
.message-contact .message-from{margin:0}
.message-contact-photo{width:52px;height:52px;border-radius:50%;object-fit:cover;object-position:top;mask-image:radial-gradient(circle,#000 65%,transparent 72%)}
.campaign-document-photo{float:right;width:25%;max-height:170px;object-fit:contain;margin:0 0 12px 16px;mix-blend-mode:multiply}
