body:has(.signal-quick){background:#26343b;background-image:radial-gradient(ellipse at 80% 0,#637a8133,transparent 70%);color:#d3d3ca}
.signal-quick{max-width:1100px;margin:auto;--gold:#d2b887;--signal-serif:"Songti SC","STSong","Noto Serif CJK SC","SimSun",Georgia,serif;font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;line-height:1.85;color:#d3d3ca}
.signal-top{display:flex;justify-content:space-between;gap:16px;margin-bottom:18px}.signal-top a{color:#c9bea5}
.signal-progress{margin-bottom:26px}.signal-progress button{color:#c9d0cf;font-size:.9375rem;font-weight:500}.signal-progress button[aria-current]{color:#e0c89d;border-color:#d2b887}
.signal-quick .eyebrow{color:#cdb68c;font-size:.875rem;letter-spacing:.08em;margin-bottom:12px}
.signal-quick h1{font:600 clamp(2rem,4vw,3rem)/1.45 var(--signal-serif);color:#e0d9ca;letter-spacing:.02em}.signal-quick h1 em{color:#d8bd87;font-style:normal}
.signal-quick p{font-size:1.0625rem;line-height:1.85;color:#cbd0cd}.signal-quick h2{font-size:1.25rem;line-height:1.65;color:#ded8ca}
.signal-quick .primary{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:12px 21px;border:1px solid #d1b17b;border-radius:2px;background:#cbb184;color:#263137;font-size:1rem;font-weight:500;line-height:1.65}
.signal-quick .primary:hover{background:#ddc399}.signal-quick .quiet{min-height:46px;padding:10px 17px;border:1px solid #a994724f;border-radius:2px;background:transparent;color:#d0c0a0;font-size:1rem;line-height:1.65}.signal-quick .quiet:hover{background:#cbb18412}
.signal-quick button,.signal-quick a{font-family:inherit;touch-action:manipulation}.signal-quick button:focus-visible,.signal-quick a:focus-visible,.signal-quick summary:focus-visible{outline:2px solid #dec69e;outline-offset:4px}
.signal-opening{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);background:#303f45;border:1px solid #90a3a33d;overflow:hidden}
.signal-opening-art{position:relative;min-height:470px;overflow:hidden}.signal-opening-art img{position:absolute;width:100%;height:100%;object-fit:cover;object-position:38% center}.signal-opening-art>span{position:absolute;bottom:20px;left:20px;padding:7px 12px;background:#26343be6;color:#cfc7b5;font-size:.875rem}
.signal-opening-copy{padding:34px;align-self:center}.signal-opening-copy p{margin-top:15px}.signal-opening-copy .primary{margin-top:25px}
.signal-heading{margin:0 0 27px}.signal-heading p{margin-top:14px;max-width:780px}.signal-heading h1{font-size:clamp(1.9rem,3.6vw,2.8rem)}
/* An intercepted code note faces a hypothesis, with the available channels beside it. */
.signal-caseboard {
 position:relative;isolation:isolate;display:grid;grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr);
 align-items:start;gap:clamp(32px,5vw,64px);padding:34px 38px;
 border:1px solid #8d9c9b42;background:#17262d;box-shadow:0 18px 45px #060d153d;
}
.signal-caseboard::before {
 content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
 background:linear-gradient(0deg,#101c26b8,transparent 60%),linear-gradient(90deg,transparent 34%,#0d1822e6 44%,#0d1822cc 64%,transparent 89%),url("assets/signal-desk.webp") right bottom/cover no-repeat;
}
.signal-code-note {
 position:relative;align-self:stretch;min-width:0;padding:25px 28px 27px;
 background:linear-gradient(115deg,#d0caba,#bdbbaa);color:#26383d;
 border-top:3px solid #d4c59e;box-shadow:4px 8px 20px #0005;transform:rotate(-1deg);
}
.signal-note-label {display:block;font-size:.875rem;letter-spacing:.08em;color:#3e5154;padding-bottom:13px;border-bottom:1px solid #42565a45}
.signal-code-note .signal-code {display:block;font:500 clamp(5rem,9vw,7.5rem)/1.1 "Courier New",monospace;letter-spacing:.04em;color:#26383d;margin:21px 0 24px}
.signal-note-copy {padding-top:15px;border-top:1px solid #42565a45}
.signal-note-copy>span {font-size:.875rem;color:#455b5d}
.signal-note-copy h2 {font:600 1.375rem/1.6 var(--signal-serif);color:#26383d;margin:2px 0 8px}
.signal-note-copy p {font-size:1rem;color:#34484b;margin:0;line-height:1.75}
.signal-briefing {min-width:0;padding:3px 0 12px}
.signal-target {padding-bottom:22px;border-bottom:1px solid #a6b6b24d}
.signal-target-label {display:flex;align-items:center;justify-content:space-between;gap:14px;color:#b9c7c8;font-size:.875rem}
.signal-unconfirmed {border:1px solid #b497687a;color:#d8bd8f;padding:2px 11px;letter-spacing:.12em;font-size:.8125rem}
.signal-target-row {display:flex;align-items:center;gap:23px;margin-top:17px}
.signal-target-row>div {min-width:0}
.signal-target-row strong {display:block;font:500 clamp(2.25rem,4.5vw,3.4rem)/1.35 var(--signal-serif);color:#dfca9f;letter-spacing:.06em}
.signal-target-name {display:block;font:.8125rem/1.7 Georgia,serif;letter-spacing:.24em;color:#a9b9bc;margin:6px 0 0 4px}
.signal-question {flex:0 0 38px;position:relative;width:38px;height:38px;border:1px solid #a7b2aa75;border-radius:50%;display:grid;place-items:center;color:#c8b68f;font:1.625rem/1 Georgia,serif}
.signal-question::before {content:"";position:absolute;right:100%;width:clamp(26px,3.4vw,42px);top:50%;border-top:1px dashed #b3ad946e}
.signal-conditions {display:grid;gap:21px;max-width:330px;padding-top:23px}
.signal-conditions article {min-width:0;padding-left:17px;border-left:2px solid #7d979b83}
.signal-conditions article:last-child {border-left-color:#b0966283}
.signal-conditions article>span {display:block;font-size:.875rem;color:#b9c6c7}
.signal-conditions h2 {margin:3px 0 6px;font:500 1.25rem/1.6 var(--signal-serif);color:#e0d9c9}
.signal-conditions p {font-size:1rem;line-height:1.75;margin:0;color:#c7d0cf;text-shadow:0 1px 10px #14232b}
.signal-challenge{margin-top:24px}.signal-reveal-entry{display:flex;justify-content:flex-start;margin-top:25px;padding-top:22px;border-top:1px solid #91a3a333}
.signal-exchange{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:30px;align-items:stretch}.signal-exchange.is-received{grid-template-columns:minmax(0,1fr) 25px minmax(0,1fr);gap:20px}
.signal-dispatch{padding:26px 28px;background:#b6b3a4;color:#293638;border:1px solid #c9bd9d;box-shadow:0 8px 26px #18252b33;min-width:0}
.signal-dispatch header{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;padding-bottom:16px;border-bottom:1px solid #4b585947;color:#324448;font-size:.9375rem}
.signal-dispatch header small{font-size:.875rem;color:#485958}.signal-dispatch p{color:#27383b;font:500 clamp(1.4rem,2.8vw,2rem)/1.9 var(--signal-serif);margin:30px 0;min-height:120px}
.signal-dispatch mark{background:transparent;color:inherit;border-bottom:2px solid #8c633b;padding:0 0 3px}.signal-dispatch footer{border:0;padding:12px 0 0;margin:0;color:#425354;font-size:.875rem;border-top:1px solid #4b585930;display:block}
.signal-in{background:#a5b3ad;border-color:#acc0b3}.signal-in p strong{font:600 2.6rem/1.3 Georgia,serif;letter-spacing:.12em}
.signal-await{padding:28px 0 28px 10px;align-self:center}.signal-await>span{color:#b7c4c5;font-size:.875rem}.signal-await h2{margin:8px 0 16px;font:500 2rem/1.5 var(--signal-serif)}.signal-await p{margin:0 0 25px}.signal-echo{align-self:center;justify-self:center;color:#d1ba91;font-size:1.8rem}
.signal-resolution{padding:24px 0;border-bottom:1px solid #91a3a333}.signal-resolution>strong{display:flex;gap:24px;align-items:center;font:500 2rem/1.6 var(--signal-serif);color:#ddc497}.signal-resolution b{font-size:1.4rem;font-weight:400;color:#a5b8b9}.signal-resolution p{margin:8px 0 0}.signal-resolution details{margin-top:14px;color:#cbd0cd}.signal-resolution summary{cursor:pointer;min-height:44px;padding:8px 0;font-size:1rem;color:#d4c09d}.signal-resolution details p{font-size:1rem;max-width:790px}.signal-afterword{max-width:810px;margin-top:22px}
.signal-ending-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:28px}.signal-ending-actions .primary{margin-left:auto}
.signal-sources{margin-top:28px;padding-top:12px;border-top:1px solid #91a3a333;color:#b6c1c1;font-size:.875rem}.signal-sources summary{min-height:44px;padding:8px 0;cursor:pointer}.signal-sources p{font-size:.875rem;max-width:850px;margin:12px 0}.signal-sources a{display:block;width:fit-content;min-height:38px;padding:6px 0;font-size:.875rem;color:#cdbb9b}
.selection-signal .selection-shade{background:linear-gradient(180deg,#23313933,#23313908 20%,#26343bf2 77%,#26343b)}.selection-signal>.scene-art{object-position:35% center}
#signal-content:focus{outline:0}
@media(max-width:760px){.signal-top{margin-bottom:14px}.signal-progress{margin-bottom:22px}.signal-opening{grid-template-columns:1fr}.signal-opening-art{min-height:220px;max-height:240px}.signal-opening-copy{padding:24px}.signal-opening-copy h1{font-size:2rem}.signal-opening-copy p{font-size:1rem}.signal-opening-copy .primary{width:100%}.signal-heading h1{font-size:1.85rem}.signal-heading p{font-size:1rem}.signal-exchange,.signal-exchange.is-received{grid-template-columns:1fr;gap:16px}.signal-dispatch{padding:22px}.signal-dispatch p{margin:22px 0;min-height:0;font-size:1.5rem}.signal-await{padding:15px 0}.signal-await .primary{width:100%}.signal-echo{transform:rotate(90deg);line-height:1}.signal-resolution>strong{gap:18px;font-size:1.65rem}.signal-ending-actions .quiet{flex:1}.signal-ending-actions .primary{flex-basis:100%;margin-left:0}}
@media(prefers-reduced-motion:no-preference){.signal-in{animation:signal-arrival .45s ease-out both}.signal-resolution{animation:signal-arrival .45s ease-out both}}
@keyframes signal-arrival{from{opacity:.2;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
body[data-motion=reduce] .signal-in,body[data-motion=reduce] .signal-resolution{animation:none}

@media(max-width:760px) {
 .signal-caseboard {grid-template-columns:1fr;gap:28px;padding:23px 22px;}
 .signal-caseboard::before {background:linear-gradient(90deg,#0d1822d9,#0d1822a6 65%,#0d18224d),linear-gradient(180deg,transparent 20%,#15232b70 55%,#15232bdb),url("assets/signal-desk.webp") 82% bottom/auto 100% no-repeat;}
 .signal-code-note {display:grid;grid-template-columns:90px minmax(0,1fr);column-gap:18px;padding:19px 21px 22px;transform:none;}
 .signal-note-label {grid-column:1/-1;margin-bottom:17px;}
 .signal-code-note .signal-code {font-size:4.5rem;align-self:center;margin:0;}
 .signal-note-copy {padding:0;border:0;}
 .signal-note-copy h2 {font-size:1.1875rem;}
 .signal-note-copy p {font-size:1rem;}
 .signal-briefing {padding:0;}
 .signal-target {padding-bottom:21px;}
 .signal-target-row {gap:18px;margin-top:12px;}
 .signal-target-row strong {font-size:2.375rem;}
 .signal-question {width:34px;height:34px;flex-basis:34px;font-size:1.5rem;}
 .signal-question::before {right:auto;left:50%;top:auto;bottom:100%;width:0;height:36px;border-top:0;border-left:1px dashed #b3ad947a;}
 .signal-conditions {max-width:none;gap:22px;padding-top:23px;}
 .signal-conditions h2 {font-size:1.1875rem;}
}
@media(max-width:380px) {
 .signal-caseboard {padding:20px 17px;}
 .signal-code-note {grid-template-columns:72px minmax(0,1fr);gap:0 14px;padding:17px;}
 .signal-code-note .signal-code {font-size:3.5rem;}
 .signal-note-label {letter-spacing:0;}
 .signal-note-copy>span {font-size:.8125rem;}
}

/* The user rehearses a plan at the desk; historical messages stay behind reveal. */
.signal-plan-desk{margin-top:28px;padding:28px 30px;background:linear-gradient(125deg,#233239f0,#19272ff0);border:1px solid #9aa9a24f;box-shadow:0 12px 30px #10191e24}
.signal-plan-desk h2{font:500 1.45rem/1.65 var(--signal-serif);margin:0 0 23px}
.signal-plan-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.signal-quick .signal-plan-choices .case-answer-option{display:grid;grid-template-columns:27px minmax(0,1fr) 15px;align-items:start;gap:9px;padding:18px 14px;border:1px solid #8f9d9561;background:#2a3940;color:#ccd2ca;text-align:left;border-radius:2px;min-width:0}
.signal-quick .signal-plan-choices .case-answer-option[aria-pressed=true]{background:#424b46;border-color:#c4af83;box-shadow:inset 0 3px #c4af83}
.signal-plan-number{font:400 1.2rem/1.6 Georgia,serif;color:#cbb488}.signal-plan-choices strong{display:block;font-size:1.0625rem;font-weight:500;line-height:1.7;color:#ded1b6}.signal-plan-choices small{display:block;font-size:.9375rem;line-height:1.8;color:#b9c7c5;margin-top:8px}.signal-plan-selected{color:#d6bf90}
.signal-plan-test{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:23px}.signal-plan-test>span{font-size:.875rem;color:#aebfbd}
.signal-plan-result{margin-top:20px;min-height:74px;padding:18px 20px;border-left:2px solid #8295945e;background:#16242bbb}.signal-plan-result>p{margin:0;font-size:.9375rem;color:#bfc9c5}.signal-plan-result.is-reviewed{border-color:#c5ad7c}.signal-plan-result h3{font:500 1.125rem/1.7 var(--signal-serif);color:#d6c5a1;margin:18px 0 9px}
.signal-plan-route{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.signal-plan-route>div{position:relative;padding:12px;background:#314148;border:1px solid #91a29a3f}.signal-plan-route>div+div:before{content:'→';position:absolute;right:calc(100% + 5px);top:50%;transform:translateY(-50%);color:#c6b58d}.signal-plan-route span{display:block;color:#b3c4c1;font-size:.8125rem}.signal-plan-route strong{display:block;color:#d5ccb6;font-size:.9375rem;font-weight:500;margin-top:5px;line-height:1.65}
.signal-plan-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:25px;padding-top:22px;border-top:1px solid #91a29a40}.signal-plan-desk button:disabled{opacity:.42;cursor:default}.signal-plan-desk .primary:disabled:hover{background:#cbb184}
@media(max-width:760px){.signal-plan-desk{padding:22px 18px}.signal-plan-desk h2{font-size:1.25rem}.signal-plan-choices{grid-template-columns:1fr;gap:10px}.signal-quick .signal-plan-choices .case-answer-option{padding:15px;grid-template-columns:27px minmax(0,1fr) 15px}.signal-plan-choices small{margin-top:4px}.signal-plan-test{gap:10px}.signal-plan-test .quiet{width:100%}.signal-plan-result{padding:16px}.signal-plan-route{grid-template-columns:1fr;gap:22px}.signal-plan-route>div{display:flex;align-items:center;gap:16px;padding:10px 13px}.signal-plan-route>div>span{flex:0 0 44px}.signal-plan-route strong{margin:0}.signal-plan-route>div+div:before{content:'↓';right:auto;left:32px;top:-22px;transform:none;line-height:22px}.signal-plan-actions{display:grid;grid-template-columns:1fr}.signal-plan-actions button{width:100%;font-size:.9375rem}}
@media(prefers-reduced-motion:no-preference){.signal-plan-result.is-reviewed{animation:signal-arrival .25s ease-out both}}
body[data-motion=reduce] .signal-plan-result{animation:none}
