*{box-sizing:border-box}body{margin:0;background:#e8e5d7;color:#26362c;font:16px/1.7 system-ui,sans-serif}main{max-width:520px;margin:3vh auto;padding:20px}header,footer,.strip{display:flex;align-items:center;justify-content:space-between}small,footer,.strip{font: bold 12px/1.6 monospace;letter-spacing:.08em}h1{font-size:clamp(24px,6vw,34px);margin:10px 0 18px}article{background:#fbf8eb;border:2px solid;border-radius:12px;overflow:hidden;box-shadow:4px 5px #36483c}.strip{background:#293e32;color:#edf2cf;padding:9px 15px}.scene{background:repeating-linear-gradient(0deg,#b9cd9c 0 3px,#bfcea6 3px 5px);text-align:center;padding:20px;border-bottom:2px solid}.scene svg{height:68px;width:112px;fill:#344c38}.panel{padding:18px}h2{font-size:22px;margin:4px 0 12px}p{margin:8px 0 16px;white-space:pre-line}.actions{display:flex;flex-wrap:wrap;gap:9px}button{cursor:pointer;font:inherit;font-weight:700;border:2px solid #344337;border-radius:5px;background:#f8f5e6;color:#293a2e;padding:10px 15px;flex:1 1 auto;box-shadow:0 3px #344337}button:first-child{background:#ffe397}button:active{transform:translateY(2px);box-shadow:none}footer{margin-top:20px;color:#586354}#who{display:block;white-space:pre-line}h2{overflow-wrap:anywhere}
#reply-context[hidden], .panel[data-view="draftReply"] > p { display: none; }
#reply-context { margin: 20px 0 24px; }
#reply-context > section + section { margin-top: 24px; }
#reply-context h3 { margin: 0 0 10px; font-size: 16px; line-height: 1.6; }
#reply-context .reply-received { margin: 0 0 8px; color: #526772; font-size: 12px; line-height: 1.7; }
#reply-context blockquote { margin: 0; padding: 10px 0 10px 14px; border-left: 3px solid #b9cdc7; font-size: 14px; line-height: 1.8; }
#reply-context ul { margin: 0; padding-left: 1.3em; font-size: 14px; line-height: 1.9; }
main:has(#terminal-screen:not([hidden]) .panel[data-view="draftReply"]) { max-width: 760px; }
#reply-context .reply-mail { border-top: 1px solid #c9d4d3; padding-top: 20px; }
.reply-answers { margin: 0; }
.reply-answer { display: grid; grid-template-columns: 130px minmax(0, 1fr); gap: 20px; padding: 20px 0; border-top: 1px solid #dbe2df; }
.reply-answer dt { display: flex; align-items: baseline; gap: 8px; color: #365f57; font-size: 14px; font-weight: 700; }
.reply-number { color: #6e8981; font: 500 12px/1.6 monospace; }
.reply-answer dd { margin: 0; min-width: 0; }
#reply-context .reply-answer p { margin: 0 0 12px; white-space: normal; font-size: 15px; line-height: 1.9; }
#reply-context .reply-answer p:last-child { margin-bottom: 0; }
#reply-context .reply-evidence { padding: 10px 12px; list-style: none; background: #eef3f0; font-size: 12px; color: #435f57; }
.reply-evidence span { margin-right: 7px; color: #62776f; }
.reply-next { border-bottom: 2px solid #78978d; }
@media (max-width: 540px) {
  .reply-answer { grid-template-columns: minmax(0, 1fr); gap: 10px; padding: 18px 0; }
}
.panel[data-view="draftReply"] .actions { display: grid; }
main:has(#terminal-screen:not([hidden]) [data-view="cio"]) { max-width: 760px; }
#cio-decision-flow { margin: 22px 0; color: #233b46; }
#cio-decision-flow[hidden] { display: none; }
#cio-decision-flow h3 { margin: 0; font-size: 17px; line-height: 1.6; }
#cio-decision-flow h4 { margin: 0 0 6px; font-size: 14px; line-height: 1.6; }
#cio-decision-flow p { margin: 8px 0 0; font-size: 14px; line-height: 1.8; white-space: normal; }
.cio-reason { padding-left: 14px; border-left: 3px solid #af7958; }
.cio-arrow { display: flex; align-items: center; justify-content: center; gap: 10px; margin: 12px 0; font-size: 13px; line-height: 1.6; }
.cio-arrow > span { font-size: 26px; color: #52756d; }
.cio-phase { padding: 18px; border: 1px solid #bacdc7; }
.cio-now { background: #edf4ed; border-top: 4px solid #366b59; }
.cio-phase-label { display: block; margin-bottom: 5px; color: #47625a; font-size: 12px; font-weight: 500; }
.cio-measures { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-top: 18px; }
.cio-measures > div + div { padding-left: 20px; border-left: 1px solid #c7d7cd; }
#cio-decision-flow .cio-exception { margin-top: 16px; padding-top: 12px; border-top: 1px solid #c7d7cd; color: #78472c; }
.cio-later { background: #fffdf7; border-top: 4px solid #879b9a; }
.cio-conditions { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); gap: 14px; align-items: center; margin-top: 18px; }
.cio-conditions > div { align-self: stretch; padding-bottom: 12px; border-bottom: 2px solid #b9cdc7; }
.cio-and { color: #47625a; font-size: 12px; font-weight: 700; }
#cio-decision-flow .cio-execution { margin: 0; padding: 12px; background: #e8eeeb; font-weight: 700; }
#cio-decision-flow figcaption { margin-top: 14px; font-size: 13px; line-height: 1.8; }
@media (max-width: 540px) {
  .cio-phase { padding: 14px; }
  .cio-measures, .cio-conditions { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .cio-measures > div + div { padding: 12px 0 0; border-left: 0; border-top: 1px solid #c7d7cd; }
  .cio-and { text-align: center; }
  #cio-decision-flow h3 { font-size: 16px; }
}
#ransomware-explainer { margin: 24px 0; color: #203d4d; }
#ransomware-explainer[hidden] { display: none; }
#ransomware-caption { margin-bottom: 18px; font-size: clamp(20px, 4.6vw, 27px); font-weight: 800; line-height: 1.5; }
.ransom-state { padding: 18px; border: 1px solid #bad4cd; border-radius: 12px; background: #f0f8f5; }
#ransomware-explainer h3 { margin: 0 0 16px; font-size: 16px; line-height: 1.6; }
#ransomware-explainer h3 > span { display: inline-grid; place-items: center; width: 25px; height: 25px; margin-right: 5px; border-radius: 50%; background: #235d58; color: #fff; font: 700 14px/1 system-ui; }
.ransom-flow { display: grid; grid-template-columns: minmax(0, 1fr) 74px minmax(0, 1fr); align-items: center; gap: 12px; max-width: 490px; margin: auto; }
.ransom-file { align-self: start; border: 2px solid #578477; border-radius: 3px 14px 3px 3px; background: #fff; overflow: hidden; }
.ransom-file > b { display: block; padding: 7px 4px; border-bottom: 1px solid #bdd2ca; background: #dfede7; text-align: center; font-size: 14px; }
.ransom-rows { position: relative; display: grid; gap: 6px; padding: 12px 8px; font-size: 13px; font-variant-numeric: tabular-nums; }
.ransom-rows > span { display: flex; justify-content: space-between; gap: 4px; border-bottom: 1px solid #d9e4e0; }
.ransom-rows strong { white-space: nowrap; }
.ransom-transfer { color: #235d58; text-align: center; font-size: 12px; font-weight: 700; line-height: 1.5; }
.ransom-transfer svg { display: block; width: 100%; height: 23px; margin-top: 6px; fill: none; stroke: currentColor; stroke-width: 3; }
.ransom-register { text-align: center; font-size: 13px; }
.ransom-display { display: grid; gap: 3px; padding: 8px 4px; border: 5px solid #38596a; border-radius: 7px; background: #def3e9; color: #164a41; line-height: 1.4; }
.ransom-display small { font: 12px/1.4 system-ui; letter-spacing: 0; }
.ransom-display strong { font: 800 clamp(20px, 5vw, 30px)/1.3 monospace; }
.ransom-keypad { width: 90%; height: 19px; margin: 8px auto 6px; border: 4px solid #38596a; border-bottom-width: 7px; border-radius: 3px; background: repeating-linear-gradient(90deg, #c4d4dc 0 8px, #38596a 8px 11px); transform: perspective(50px) rotateX(20deg); }
.ransom-change { display: flex; align-items: center; justify-content: center; gap: 10px; margin: 13px 0; color: #914737; font-size: 13px; font-weight: 700; }
.ransom-change > span { font-size: 26px; }
.ransom-after { border-color: #e4bbaf; background: #fff3ee; }
#ransomware-explainer .ransom-after h3 > span, #ransomware-explainer .ransom-demand h3 > span { background: #934936; }
.ransom-after .ransom-file { border-color: #ac6652; }
.ransom-after .ransom-file > b { background: #f4dfd5; border-color: #e0b7a8; }
.ransom-scrambled { color: #9b6659; font-family: monospace; }
.ransom-scrambled > span { border-color: #ead0c5; }
.ransom-scrambled svg { position: absolute; width: 34px; height: 38px; right: 9px; bottom: 8px; fill: #fff3de; stroke: #934936; stroke-width: 3; stroke-linecap: round; }
.ransom-after .ransom-transfer { color: #934936; }
.ransom-broken { stroke-dasharray: 4 3; }
.ransom-after .ransom-display { background: #f4dfd5; color: #914737; }
#ransomware-explainer .ransom-explanation { margin: 15px 0 0; font-size: 13px; line-height: 1.7; }
.ransom-demand { display: flex; align-items: flex-start; gap: 12px; margin-top: 22px; }
.ransom-demand > svg { flex: 0 0 42px; width: 42px; height: 42px; fill: #fff3de; stroke: #934936; stroke-width: 2.5; }
#ransomware-explainer .ransom-demand h3 { margin-bottom: 7px; }
#ransomware-explainer .ransom-demand p { margin: 0; font-size: 14px; line-height: 1.7; }
#ransomware-explainer .ransom-takeaway { margin: 18px 0 12px; padding: 10px 12px; border-left: 4px solid #934936; background: #fff3ee; font-size: 14px; font-weight: 700; line-height: 1.7; }
.ransom-scope { display: block; color: #526977; font: 12px/1.7 system-ui; letter-spacing: 0; }
.ransom-sources a { color: #145c79; text-underline-offset: 3px; }
.ransom-sources > div { margin-top: 8px; line-height: 1.8; }
@media (max-width: 420px) {
  .ransom-state { padding: 12px 10px; }
  .ransom-flow { gap: 5px; grid-template-columns: minmax(0, 1fr) 46px minmax(0, 1fr); }
  .ransom-transfer { font-size: 11px; }
  .ransom-file > b, .ransom-register { font-size: 12px; }
  .ransom-rows { padding: 12px 5px; font-size: 11px; }
  #ransomware-explainer h3 { font-size: 14px; }
  .ransom-demand > svg { flex-basis: 28px; width: 28px; height: 32px; }
  .ransom-demand { gap: 8px; }
}
#opening{position:relative;isolation:isolate;display:grid;place-content:center;gap:1.3rem;width:100%;min-height:100vh;min-height:100svh;padding:32px 16px;overflow:hidden;border:0;border-radius:0;box-shadow:none;background:radial-gradient(ellipse at 50% 44%,#203651,#091525 74%);color:#fff3d9;text-align:center;cursor:pointer}
#opening[hidden]{display:none}
#opening { min-height: calc(100vh - 48px); min-height: calc(100svh - 48px); }
#about-link {
  display: block;
  width: 100%;
  min-height: 48px;
  padding: 12px 16px;
  text-align: center;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  background: #daf5f4;
  color: #254366;
  font-size: 14px;
  text-decoration: underline;
  text-underline-offset: 3px;
}
#opening[hidden] + #about-link { display: none; }
#opening:active{transform:none}#opening:focus-visible{outline:4px solid #ffdf86;outline-offset:-6px}
#opening .edition,#opening .start-label,#opening .location{font:700 12px/1.7 monospace;letter-spacing:.22em}
#opening .edition{color:#ffd39f}#opening .logo{display:block;line-height:1.2;font-weight:1000;font-size:clamp(32px,8vw,74px);letter-spacing:-.06em;text-shadow:2px 4px #342435,0 6px 24px #171023;animation:arrive .85s ease-out both}
#opening .logo b{display:block;font-size:.64em;color:#ffe8b0;letter-spacing:.16em;margin-bottom:.22em}
#opening .episode{font-size:clamp(13px,3vw,19px);letter-spacing:.08em}
#opening .start-label{margin-top:clamp(30px,10vh,100px);color:#ffe4a8;animation:signal 2.6s ease-in-out infinite}
#opening .location{position:absolute;bottom:20px;left:0;right:0;font-size:10px;color:#b5c4ce}
@keyframes arrive{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes signal{50%{opacity:.62}}
@media(prefers-reduced-motion:reduce){#opening *{animation:none!important}}

#opening .start-label{margin-top:1.3rem}
#opening .edition{color:#ffe2b4}
.scene.chief{display:flex;align-items:center;justify-content:center;gap:16px;background:#253946;color:#fff1d8}
.scene.chief svg,.scene:not(.chief) .profile{display:none}
.profile{display:flex;align-items:center;gap:18px;text-align:left;font-size:18px}.profile img{width:76px;height:84px;object-fit:cover;object-position:50% 20%;border:1px solid #c1ad85}.profile small{display:block;color:#dbc8ae}
.panel[data-view="receipt"] p,.panel[data-view="trace"] p,.panel[data-view="ledger"] p,.panel[data-view="copied"] p{padding:14px;border:1px dashed #758272;background:#f2f1df;font-family:monospace;line-height:1.9}.panel[data-view="receipt"] h2{font-family:monospace;font-size:30px}.panel[data-view="log"] .actions{display:grid}.intro-shadow,.scene.intro-shadow-scene svg{display:none}.scene.intro-shadow-scene{padding:0;background:#282c36}.scene.intro-shadow-scene .intro-shadow{display:block;margin:auto;width:100%;height:min(30svh,240px);object-fit:cover;object-position:center 33%}
main.story{margin:0;max-width:none;padding:0;background:#162735}
.story>header,.story>h1,.story>footer,.story .scene{display:none}
.story article{position:relative;isolation:isolate;display:flex;flex-direction:column;justify-content:space-between;min-height:100vh;min-height:100svh;border:0;border-radius:0;box-shadow:none;background:#21323a;color:#182b42}
.story article::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,#152940b0,transparent 50%),var(--story-art, url(characters/mikage/ops-chief.webp)) center 19% / cover no-repeat}
.story article.intercom-composite::before{background:linear-gradient(0deg,#152940b0,transparent 50%)}
.intercom-art{position:absolute;inset:0;z-index:-2;overflow:hidden;container-type:size;pointer-events:none}
.intercom-art img[hidden],.intercom-art[hidden],.intertitle .intercom-art{display:none}
.intercom-art img{display:block;position:absolute;left:50%;top:0;width:100cqw;height:150cqw;transform:translateX(-50%)}
@media(min-aspect-ratio:1/1){.story article.intercom-composite::before{background:linear-gradient(90deg,#192b3c,transparent 36%,transparent 64%,#192b3c)}.intercom-art img{top:21%;width:calc(max(100svh,740px) * 2 / 3);height:max(100svh,740px);transform:translate(-50%,-21%)}}
.story .strip{align-self:flex-start;margin:14px;padding:6px 13px;background:#192c40de;color:white;border-left:3px solid #edce91;border-radius:2px;font-size:14px;gap:14px}
.story .panel{position:relative;align-self:center;width:min(calc(100% - 24px),700px);margin:100px 0 max(16px,env(safe-area-inset-bottom));padding:28px 20px 13px;background:#fffdf9f2;border:1px solid #fff;border-bottom:3px solid #66b5ba;border-radius:4px 16px 4px 16px;box-shadow:0 6px 30px #12253d45}

.story h2{font-size:clamp(17px,4vw,22px);font-weight:550;line-height:1.7;min-height:3.4em;margin:0}.story p{display:none}
.story .actions{justify-content:flex-end}.story .actions button{flex:none;background:transparent;border:0;border-radius:0;box-shadow:none;color:#23546c;font-size:clamp(18px,3.8vw,20px);line-height:1.6;min-height:48px;padding:10px 8px}
@media(min-aspect-ratio:1/1){.story article::before{background:linear-gradient(90deg,#192b3c,transparent 36%,transparent 64%,#192b3c),var(--story-art, url(characters/mikage/ops-chief.webp)) center 21% / auto max(100svh,740px) no-repeat}.story .panel{margin-top:55px}}
main article[hidden]{display:none}
.story .strip{max-width:calc(100% - 28px)}
.story .panel{display:grid;grid-template-rows:1fr auto;gap:4px;padding-top:24px}
.story article:not(.intertitle) .panel{min-height:clamp(212px,32svh,244px)}
.story #story-speaker{position:absolute;inset:-18px auto auto 16px;width:max-content;max-width:calc(100% - 32px);min-height:32px;white-space:normal;background:#254158;color:white;padding:5px 24px 5px 15px;clip-path:polygon(0 0,100% 0,calc(100% - 10px) 100%,0 100%);font:700 15px/1.5 system-ui}
.story #story-speaker:empty{visibility:hidden}
.story .panel h2{min-height:0}
.story article.action-cut::before{bottom:clamp(212px,32svh,244px);background:var(--story-art) center / contain no-repeat}
.story article.recovery-call::before{background-size:cover;background-position:center 25%}
@media (min-aspect-ratio:1/1) and (max-height:500px){
  .story article.action-cut::before{inset:50px 51% 12px 12px}
  .story article.action-cut .panel{align-self:flex-end;width:47%;min-height:0;margin:12px 12px 16px;padding:24px 14px 13px}
  .story .action-cut h2{font-size:17px}
}
.story .actions{align-self:end}
#opening{padding:0;place-items:center;background:repeating-linear-gradient(125deg,#cdeff2 0 18px,#daf5f4 18px 36px)}
#opening .poster{position:relative;display:block;width:min(100vw,calc((100svh - 48px) * 2 / 3));aspect-ratio:2/3;container-type:inline-size;background:url(title/party-opening.webp) center/100% 100%}
#opening .logo{position:absolute;top:64%;left:0;width:100%;font-size:8.6cqw;line-height:1.13;color:#183c77;text-shadow:1px 2px white,2px 3px #a8e5ed}
#opening .logo b{color:#b32866;letter-spacing:.13em}
#opening .start-label{position:absolute;top:90.5%;left:50%;transform:translate(-50%,-50%);margin:0;white-space:nowrap;font-size:3.8cqw;color:white;letter-spacing:.09em;text-shadow:0 1px 2px #80305c}
.report-page .scene{display:none}.report-page .panel{background:#fffef7;border-top:5px double #46544c}.report-page h2{font-size:clamp(19px,5vw,29px);font-variant-numeric:tabular-nums;border-block:1px solid #8c9489;padding:14px 0}.report-page p{line-height:1.9;font-size:15px}.report-page #who{font-size:12px}.fiction-note{display:none}.report-page .fiction-note{display:block;margin-top:16px;color:#546052;font-size:12px}#opening .jewel-logo{display:block;width:96%;margin:0 auto;overflow:visible;transform:rotate(-2deg);text-shadow:none}#opening .logo b{margin-bottom:0}#opening .happy{display:block;width:43%;height:auto;margin:0 auto;overflow:visible;text-shadow:none}
main:not(.story){max-width:730px;padding:12px;margin:0 auto}
#terminal-screen{background:white;color:#203345;border:1px solid #c9d4df;border-radius:10px;box-shadow:0 4px 18px #21364d18}
.mailbar{padding:14px 18px;background:#173a55;color:white}.mailbar strong{letter-spacing:.08em}.mailbar span{color:#a6d9dd}
#terminal-screen .strip{background:#eef4f8;color:#435c6e;padding:10px 18px}
#terminal-screen .panel{padding:20px;background:white;border:0}
#terminal-screen h2{font:700 clamp(18px,4vw,24px)/1.45 system-ui;border:0;margin:0 0 10px;padding:0}
#who{color:#486071;border-bottom:1px solid #d6e0e6;padding-bottom:12px}
#terminal-screen p{white-space:pre-line;line-height:1.8}
#terminal-screen .actions{border-top:1px solid #d6e0e6;padding-top:14px}
#terminal-screen .actions button{background:#edf4f8;color:#26475c;border:1px solid #aac1cf;box-shadow:none}
#terminal-screen .actions button:first-child{background:#215971;color:white}
#terminal-screen details{font-size:13px;color:#425b69;margin:12px 0;cursor:pointer}
.history{white-space:pre-line;padding:10px;background:#f3f6f8}.report-page .fiction-note{display:block}
#terminal-screen.shell-view{background:#10171b;color:#e8efed;border-color:#29383b}
.shell-view .mailbar,.shell-view .strip,.shell-view #who{display:none}
#terminal-screen.shell-view .panel{background:#10171b;padding:clamp(14px,4vw,28px)}
#terminal-screen.shell-view h2{font:600 17px/1.4 system-ui;color:#e8efed}
.ssh{margin-top:16px;background:#070d10;border:1px solid #344347;border-radius:6px;overflow:hidden}
.ssh-bar{display:flex;align-items:center;gap:12px;padding:9px 12px;background:#202c30;color:#c4d3d2;font:12px/1.5 monospace}.ssh-bar span:last-child{margin-left:auto}
.ssh-log{white-space:pre-wrap;overflow-wrap:anywhere;padding:12px;margin:0;color:#a2b6b8;font:clamp(12px,2.8vw,14px)/1.65 ui-monospace,monospace}
.ssh-log span{display:block}
[data-view="inspectConnections"] .ssh-log{max-height:40svh;overflow:auto;white-space:pre}
[data-view="inspectConnections"] .ssh-log .cmd{white-space:pre-wrap}
.ssh-log .host-clue{all:unset;display:inline;color:inherit;font:inherit;cursor:pointer}
.ssh-log .host-clue:focus-visible{outline:1px dashed currentColor;outline-offset:2px}
.ssh-log .pending::after{content:"";display:inline-block;width:.6em;height:1em;background:#abefbd;vertical-align:text-bottom}
#terminal-screen.shell-view .panel{display:flex;flex-direction:column;min-height:calc(100svh - 26px)}
#terminal-screen.shell-view .actions{margin-top:auto;padding-bottom:env(safe-area-inset-bottom)}
#terminal-screen.shell-view .actions button{min-height:58px;font-size:18px;width:100%}
.ssh-log .cmd{color:#abefbd;margin-top:.45em}.ssh-log .cmd:first-child{margin-top:0}
@keyframes shell-line{from{opacity:0}to{opacity:1}}
@media(prefers-reduced-motion:reduce){.ssh-log span{animation:none}}
#terminal-screen.shell-view p{font-size:14px;color:#c2d4d3}
#terminal-screen.shell-view .actions{border-color:#344347}

/* The visible preview and downloaded PNG are the same result card. */
#result-slip:not([hidden]){display:grid;gap:14px;margin:24px 0 32px;padding:0 0 24px;background:transparent;border:0;border-bottom:1px solid #d3dfe2;border-radius:0;color:#203d4d}
.slip-intro{display:grid;gap:4px}
#slip-heading{font-size:clamp(16px,3.7vw,21px);letter-spacing:.02em}
.slip-controls{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px}
#copy-x,#share-x,#save-slip{display:flex;align-items:center;justify-content:center;min-height:48px;padding:12px 10px;border:1px solid #254d62;border-radius:6px;box-shadow:none;text-align:center;font:700 14px/1.5 system-ui,sans-serif;text-decoration:none}
#share-x{color:#fff;background:#214b60}
#copy-x{color:#254d62;background:#fff}
#copy-x:disabled,#share-x:disabled{color:#5e7079;background:#e4eaed;border-color:#bac8cf;cursor:default}
#save-slip{color:#254d62;background:transparent;border-color:transparent;font-weight:500;padding-inline:16px}
#save-slip[hidden]{display:none}
#share-x:hover:not(:disabled){background:#17394b}
#copy-x:hover:not(:disabled){background:#f5fafb}
#save-slip:hover{background:#f5fafb}
#copy-x:focus-visible,#share-x:focus-visible,#save-slip:focus-visible{outline:3px solid #b57925;outline-offset:3px}
#x-image-share{display:grid;gap:8px}
#x-image-share>strong{font-size:16px}
#x-image-share>p{margin:0;font:400 14px/1.8 system-ui,sans-serif;white-space:normal}
#x-share-status{font:400 14px/1.8 system-ui,sans-serif;color:#254d62}
#x-share-status:empty{display:none}
#x-share-manual{box-sizing:border-box;width:100%;min-height:10em;padding:12px;border:1px solid #708995;border-radius:4px;font:16px/1.6 system-ui,sans-serif}
@media(max-width:480px){
  #result-slip:not([hidden]){padding:0 0 20px;gap:12px}
  .slip-controls{grid-template-columns:1fr}
  #save-slip{min-height:44px;padding:8px}
}

#terminal-screen .asset-clue{all:unset;cursor:text}
#terminal-screen .asset-clue:focus-visible{outline:2px solid #215971;outline-offset:2px}

/* Verification is a flat record: spacing groups each check; columns compare time. */
#fw-check { margin: 24px 0; color: #233b46; }
.fw-check-section { padding: 0 0 22px; }
.fw-check-section + .fw-check-section { padding-top: 22px; border-top: 1px solid #c5d4d9; }
#fw-check h3 { margin: 0; font-size: 16px; line-height: 1.6; }
#fw-check .fw-check-method { margin: 8px 0 14px; font-size: 13px; line-height: 1.7; }
.fw-check-comparison { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px; margin: 0; }
.fw-check-comparison > div { min-width: 0; }
.fw-check-comparison dd span { display: inline-block; }
.fw-check-comparison dt { margin-bottom: 4px; font-size: 12px; color: #526772; }
.fw-check-comparison dd { margin: 0; font-size: 16px; line-height: 1.6; }
.fw-check-comparison > div + div dd { color: #21624c; font-weight: 700; }
#fw-check .fw-check-evidence { margin: 12px 0 0; font-size: 12px; line-height: 1.7; }
.fw-store-check { padding-top: 22px; border-top: 1px solid #c5d4d9; }
#fw-check .fw-store-check p { margin: 8px 0 0; font-size: 12px; line-height: 1.7; }
@media (max-width: 360px) {
  .fw-check-comparison { gap: 12px; }
  .fw-check-comparison dd { font-size: 14px; }
}

/* Registered dependency: the app is drawn inside the server that runs it. */
#cmdb-map{display:none;margin:16px 0 20px;color:#163e47}
[data-view="cmdbRecord"] #cmdb-map{display:block}
#cmdb-map b,#cmdb-map span,#cmdb-map code{display:block}
#cmdb-map span{font-size:.83rem;line-height:1.55}
.cmdb-pos,.cmdb-machine{display:flex;align-items:center;gap:16px}
.cmdb-pos{padding-left:12px}.cmdb-pos b,.cmdb-app b{font-size:1.15rem}
.cmdb-pos svg{color:#276458;flex-shrink:0}
.cmdb-arrow{position:relative;margin:4px 0 4px 40px;border-left:2px solid #367769;padding:8px 0 8px 15px;font-size:.85rem;font-weight:600}
.cmdb-arrow::after{content:"";position:absolute;left:-5px;bottom:0;width:7px;height:7px;border:solid #367769;border-width:0 2px 2px 0;transform:rotate(45deg)}
.cmdb-host{padding:16px 18px;border:2px solid #39736a;border-radius:12px;background:#edf6f1}
.cmdb-machine svg{color:#337465}.cmdb-machine b{font:700 1.4rem/1.3 system-ui}
.cmdb-machine code{font-size:.88rem}
.cmdb-alias{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 4px}
.cmdb-app{margin:12px 0 0 24px;border:1px solid #9dbdb3;border-left:4px solid #3c796c;border-radius:6px;background:white;padding:8px 13px}
#cmdb-map figcaption{margin-top:8px;padding:12px 13px;border-left:4px solid #b67a1f;background:#fcf2dc;color:#624315}
.cmdb-record-meta{display:grid;gap:5px;margin:0;font-size:14px;line-height:1.6}
.cmdb-record-meta>div{display:grid;grid-template-columns:5em minmax(0,1fr);align-items:baseline;gap:8px}
.cmdb-record-meta dd{margin:0}.cmdb-record-meta b{font-size:16px}
#cmdb-map .cmdb-record-meta dd span{display:inline-block;font-size:inherit}
#cmdb-observation{display:none;margin:24px 0 8px;padding:16px 18px;border:1px solid #a7bdc7;border-left:4px solid #446d83;border-radius:6px;background:#edf3f7;color:#233e4d}
[data-view="cmdbRecord"] #cmdb-observation{display:block}
#cmdb-observation h3{margin:0 0 8px;font-size:14px;font-weight:700;line-height:1.6;color:#446d83}
#cmdb-observation p{margin:0;font-size:16px;line-height:1.85;white-space:normal}

#terminal-screen .patch-term,#terminal-screen .php-term{all:unset;cursor:pointer;color:#215971;text-decoration:underline;text-underline-offset:.15em}
#terminal-screen .patch-term:focus-visible,#terminal-screen .php-term:focus-visible{outline:2px solid currentColor;outline-offset:2px}
.patch-term .term-badge,.php-term .term-badge{display:inline-grid;place-items:center;vertical-align:.12em;margin-inline-start:.18em;border:1px solid currentColor;border-radius:50%;width:1.12em;height:1.12em;background:#edf4f8;font:bold .72em/1 Georgia,serif}
#story-screen .cmdb-term{all:unset;cursor:pointer;color:#215971;text-decoration:underline dotted;text-underline-offset:.2em}
#story-screen .cmdb-term:focus-visible{outline:2px solid currentColor;outline-offset:2px}
.story #story-screen.intertitle{background:#162735;color:#fff8e9}
.story .intertitle::before,.story .intertitle .strip{display:none}
.story .intertitle .panel{
  flex:1 0 auto;
  width:100%;
  margin:0;
  padding:8px max(12px,env(safe-area-inset-right)) max(20px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));
  gap:8px;
  background:transparent;
  border:0;
  box-shadow:none;
  text-align:center;
}
.story .intertitle .panel h2{place-self:center;max-width:700px;font-size:clamp(24px,min(5vw,8svh),38px);letter-spacing:.08em}
.story .intertitle.scene-setting .panel{padding-inline:max(24px,env(safe-area-inset-left),env(safe-area-inset-right))}
.story .intertitle.scene-setting .panel h2{max-width:620px;font-size:clamp(18px,3.6vw,28px);line-height:1.8;letter-spacing:.03em;text-align:left;white-space:pre-line}
@media (orientation:landscape) and (max-height:420px){
  .story .intertitle .panel h2{line-height:1.45}
}
.story .intertitle .actions button{color:#e5dfce}
.story article.scanner-closeup::before{bottom:14%;background-position:center,80% 38%}
@media(max-aspect-ratio:1/1){
  .story article.checkout-queue::before{bottom:clamp(212px,32svh,244px);background-size:cover,contain;background-position:center}
}
@media(min-aspect-ratio:1/1){.story article.scanner-closeup::before{background-size:cover,auto 100%}}
@media(min-aspect-ratio:1/1) and (max-height:500px){
  .story article.scanner-closeup::before{bottom:0;background-position:center,12% center}
  .story .scanner-closeup .panel{align-self:flex-end;width:48%;margin-right:12px}
}
.term-lesson{width:min(27rem,calc(100% - 2rem));max-height:88dvh;padding:clamp(16px,4vw,25px);border:1px solid #a0b3ab;border-radius:14px;color:#263a36;background:#fffdf6;box-shadow:0 12px 60px #132d3355;overscroll-behavior:contain}
.term-lesson::backdrop{background:#10232ccd}
.term-lesson small{color:#38655a}
.term-lesson h2{margin:.4rem 0;font-size:1.35rem;line-height:1.45}
.term-lesson p{font-size:.95rem;line-height:1.65;margin:.65rem 0}

#php-lesson{width:min(48rem,calc(100% - 2rem))}
.php-flow{margin:1.2rem 0}
.php-flow figcaption{font-size:.9rem;color:#415a52;margin-bottom:1rem}
.php-journey{display:grid;grid-template-columns:1fr 1.15fr 1fr;gap:2rem;list-style:none;margin:0;padding:0}
.php-step{position:relative;min-width:0}
.php-step:not(:last-child)::after{content:"→";position:absolute;top:5.5rem;right:-1.6rem;color:#5d796e;font-size:1.5rem}
.php-place{font-size:.8rem;line-height:1.5;color:#415a52}
.php-place span{display:block}
.php-picture{display:block;width:100%;height:112px;margin:.5rem 0;fill:none;stroke:#79948a;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.php-screen{fill:#fffdf6}
.php-screen-button{fill:#edf1e9}
.php-code-sheet{fill:#e4f1e9;stroke:#3c796c}
.php-code-lines{stroke:#245a50;stroke-width:2.5}
.php-caption h3{margin:0;font-size:.9rem;line-height:1.6}
.php-caption ol{margin:.5rem 0 0;padding-left:1.3rem;font-size:.85rem;line-height:1.8}
.term-lesson .php-caption p{font-size:.85rem;margin:.5rem 0 0;line-height:1.8}
.term-lesson .php-update{border-top:1px solid #cad5cd;padding-top:.75rem;margin-top:1rem}
@media(max-width:600px){
  .php-journey{grid-template-columns:1fr;gap:1.75rem}
  .php-step{display:grid;grid-template-columns:76px minmax(0,1fr);column-gap:.75rem;align-items:center}
  .php-picture{grid-column:1;grid-row:1 / 3;height:auto;margin:0}
  .php-place{grid-column:2;margin-bottom:.3rem}
  .php-caption{grid-column:2}
  .php-step:not(:last-child)::after{content:"↓";top:auto;right:auto;left:30px;bottom:-1.5rem;font-size:1.2rem}
}

.patch-flow {
  margin: 1rem 0;
  padding: .85rem;
  background: #f1f3ed;
  border-radius: 10px;
}
.patch-flow figcaption {
  font-weight: 700;
  color: #24493f;
  margin-bottom: .5rem;
}
.patch-flow table {
  width: 100%;
  border-collapse: collapse;
  font-size: .86rem;
  line-height: 1.4;
}
.patch-flow th, .patch-flow td { padding: .35em .1em; text-align: center; }
.patch-flow thead th { font-weight: 600; color: #415a52; }
.patch-flow tbody th { position: relative; text-align: left; white-space: nowrap; }
.patch-flow tbody th span {
  display: inline-grid;
  width: 1.45em;
  height: 1.45em;
  margin-right: .3em;
  place-items: center;
  border-radius: 50%;
  color: white;
  background: #405c52;
}
.patch-flow tr:not(:last-child) th[scope="row"]::after {
  content: "";
  position: absolute;
  left: .77em;
  top: calc(50% + .72em);
  height: calc(100% - 1.45em);
  border-left: 1px solid #72887d;
}
.patch-flow td b {
  display: block;
  margin-inline: .12em;
  padding: .35em .1em;
  border-radius: 5px;
  background: #dcece3;
  color: #21523e;
}
.patch-flow td b.old { background: #fae6cf; color: #7d4220; }

.lesson-map{margin:1em 0;background:#eff4ec;border-radius:10px;padding:.85em 1em;color:#24493f}
.lesson-map figcaption{font-size:.8em;margin-bottom:.55em}
.lesson-map div{display:flex;align-items:center;gap:.75em;background:white;padding:.45em .75em;border:1px solid #9ab6aa;border-radius:6px}
.lesson-map svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:2}
.lesson-map span{display:flex;align-items:center;gap:.8em;margin-left:1.3em;font-size:.8em}
.lesson-map span::before{content:"↓";font-size:1.5em}
.term-lesson form button{width:100%;background:#245a50;color:white;border:0;box-shadow:none}

main.broadcast {
  max-width: none;
  margin: 0;
  padding: 0;
  background: #101a29;
}
#news-screen {
  display: flex;
  flex-direction: column;
  min-height: 100svh;
  border: 0;
  border-radius: 0;
  background: #101a29;
  color: white;
  box-shadow: none;
}
#news-screen[hidden] { display: none; }
.news-picture {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  flex: 1;
  min-height: 19rem;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 7rem;
  padding: clamp(14px, 3vw, 38px);
  background: #233047;
}
.news-picture::before {
  content: '';
  position: absolute;
  z-index: -1;
  inset: 0;
  background: linear-gradient(0deg, #07102091, transparent 55%),
    url('../episodes/01-security-patch/art/night/checkout-counter.webp') center 34% / cover;
}
@media (prefers-reduced-motion: no-preference) {
  .news-picture::before { animation: news-camera 12s ease-out both; }
}
@keyframes news-camera { to { transform: scale(1.065); } }
.weekend-news .news-picture::before {
  background: #35404a url('../episodes/01-security-patch/art/weekend-closure-itsudemo.webp') center / cover;
  animation: none;
}
.weekend-footage {
  position: absolute;
  inset: 0;
  z-index: -1;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
@media (prefers-reduced-motion: reduce) {
  .weekend-footage { display: none; }
}
.news-topline { display: flex; justify-content: space-between; align-items: flex-start; }
.news-bug, .news-location {
  background: #122639eb;
  font-weight: 750;
  padding: .26em .7em;
}
.news-bug { display: flex; gap: .65em; align-items: center; border-top: 3px solid #ebc45d; }
.news-bug span { font: 800 11px/1 system-ui; letter-spacing: .13em; }
.news-location { font-size: clamp(13px, 2vw, 16px); }
.news-caption { max-width: 50rem; text-wrap: pretty; }
.news-flash {
  display: table;
  padding: .2em .85em;
  background: #aa1930;
  font-size: clamp(15px, 2.4vw, 22px);
  letter-spacing: .12em;
}
.news-caption h2 {
  margin: 0;
  padding: .4em .6em;
  white-space: pre-line;
  word-break: keep-all;
  border-left: 5px solid #ba223c;
  background: #fffcf5;
  color: #132336;
  font-size: clamp(23px, 4.2vw, 44px);
  line-height: 1.35;
}
.news-caption p {
  margin: 0;
  padding: .6em 1em;
  background: #122639f5;
  font-size: clamp(14px, 2vw, 19px);
  line-height: 1.5;
}
#news-screen .actions {
  justify-content: flex-end;
  padding: 8px clamp(14px, 3vw, 38px) max(8px, env(safe-area-inset-bottom));
}
#news-screen .actions button {
  flex: none;
  min-height: 44px;
  background: transparent;
  color: white;
  border: none;
  box-shadow: none;
}
#news-screen .actions button::after { content: '　▸'; color: #ebc45d; }

/* Navigation occupies a viewport-wide row, independently of the document width. */
main:not(.story):not(.broadcast) { margin-top: 0; padding-top: var(--navigation-bottom); }
.story article { padding-top: var(--navigation-bottom); }
.story .strip { margin: 0; padding: 0; border: 0; background: none; }
#terminal-screen .mailbar { gap: 8px; }
#terminal-screen .mailbar small { margin-left: auto; text-align: right; flex-shrink: 0; white-space: nowrap; }
#terminal-screen.shell-view .panel { min-height: calc(100svh - var(--navigation-bottom) - 22px); }
.news-picture { padding-top: var(--navigation-bottom); }
#news-screen .news-topline { gap: 8px; }

.story .panel:has(.actions button:nth-child(2)) .actions{display:grid;justify-content:stretch}
.story .actions button{min-width:0;max-width:100%;white-space:normal;overflow-wrap:anywhere}
.story article.connection-report::before {
  background-size: cover, auto min(100svh, calc(150vw));
  background-position: center, center top;
}
@media (orientation: landscape) and (max-height: 520px) {
  .story article.connection-report::before { background-position: center, 10% top; }
  .story .connection-report .panel { align-self: flex-end; width: 54%; margin-right: 12px; }
}
#model-sources{display:none}
[data-view="model"] #model-sources{display:block;margin:1em 0}

/* Keep each endpoint in the same position as event use ends. */
#external-use-diagram { display: none; margin: 20px 0; color: #233b46; }
[data-view="externalUse"] #external-use-diagram { display: block; }
#external-use-diagram figcaption { margin-bottom: 16px; font-size: 21px; font-weight: 750; line-height: 1.5; }
.use-stage { margin-top: 12px; padding: 16px; border: 1px solid #c9d5db; border-radius: 8px; background: #f8fafb; }
.use-stage + .use-stage { margin-top: 16px; }
.use-stage h3, .use-store h3 { margin: 0; font-size: 16px; line-height: 1.5; }
.use-stage h3 > span { display: inline-grid; place-items: center; width: 25px; height: 25px; margin-right: 6px; border-radius: 50%; background: #233b46; color: white; font-size: 14px; }
#external-use-diagram .use-summary { margin: 8px 0 18px; font-size: 14px; }
.use-route { display: grid; grid-template-columns: minmax(0,1fr) 64px minmax(0,1fr) 64px minmax(0,1fr); gap: 5px; align-items: center; }
.use-node { min-width: 0; text-align: center; }
.use-node > svg { display: block; width: 38px; height: 44px; margin: 0 auto 6px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.use-node b, .use-node small, .use-node strong { display: block; }
.use-node b { font-size: 15px; }
.use-node small { margin-top: 4px; font: 12px/1.6 system-ui,sans-serif; letter-spacing: 0; }
.use-node strong { margin-top: 4px; font-size: 13px; line-height: 1.6; }
.use-gate { padding: 10px 4px; border-radius: 6px; background: #edf1f3; }
.use-open { background: #ffedbd; color: #66450d; outline: 1px solid #c3994b; }
.use-retired { color: #627078; }
.use-link { min-width: 0; text-align: center; color: #365b70; }
.use-link > span { display: block; font-size: 12px; line-height: 1.6; }
.use-link svg { display: block; width: 100%; height: 32px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.use-unused { color: #627078; }
.use-cross { stroke: #825146; }
.use-permitted { color: #886222; }
.use-dashed { stroke-dasharray: 4 5; }
#external-use-diagram .use-legend { margin: 14px 0 0; color: #526772; font-size: 12px; }
.use-observations { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin: 16px 0 0; padding-top: 14px; border-top: 1px solid #c9d5db; }
.use-observations dt { font-size: 12px; color: #526772; }
.use-observations dd { margin: 4px 0 0; font-size: 14px; }
.use-observations dd b { display: block; font-size: 18px; }
.use-store { margin-top: 16px; padding: 16px; border-radius: 8px; background: #edf5f0; color: #285146; }
.use-store-route { margin: 18px 0; }
.use-store .use-gate { background: #dcece3; }
.use-store .use-link { color: inherit; }
.use-node .use-register-count { font-size: 16px; font-variant-numeric: tabular-nums; white-space: nowrap; }
#external-use-diagram .use-store p { margin: 0; font-size: 14px; }
#external-use-diagram .use-investigation { margin: 16px 0 0; font-size: 13px; }
@media (max-width: 480px) {
  .use-stage, .use-store { padding: 12px 8px; }
  #external-use-diagram figcaption { font-size: 18px; }
  .use-route { grid-template-columns: minmax(0,1fr) 30px minmax(0,1fr) 30px minmax(0,1fr); gap: 3px; }
  .use-node b { font-size: 12px; }
  .use-node small, .use-node strong, .use-link > span { font-size: 11px; }
  .use-node > svg { width: 30px; height: 36px; }
  .use-node .use-register-count { font-size: 13px; }
  .use-observations { grid-template-columns: 1fr; gap: 10px; }
  .use-observations dd b { display: inline; margin-left: 6px; font-size: 16px; }
}

/* Firewall work: the command and the observed result stay beside their explanation. */
main:has(.network-view:not([hidden])) { max-width: 760px; }
#network-work { margin: 18px 0; }
.network-record { margin: 12px 0; border: 1px solid #adbdc5; border-radius: 5px; overflow: hidden; }
.network-record h3, .network-record summary { margin: 0; padding: 10px 12px; font-size: 14px; background: #eaf1f3; color: #233b46; }
.network-record summary { cursor: pointer; }
.network-record pre { margin: 0; padding: 14px 12px; background: #17242b; color: #e3f2ea; font: 12px/1.6 ui-monospace, monospace; white-space: pre-wrap; overflow-wrap: anywhere; }
.network-note { padding: 10px 12px; font-size: 13px; line-height: 1.7; background: #f6f8f4; }
.network-memo { padding: 14px; background: #fff; color: #233b46; }
.network-memo section + section { margin-top: 20px; }
.network-memo h4 { margin: 0; font-size: 14px; }
.network-memo p { margin: 6px 0 10px; font-size: 12px; line-height: 1.7; }
.network-memo dl { margin: 0; }
.network-memo dl > div { padding: 7px 0; border-top: 1px solid #dce5e8; }
.network-memo dt { color: #526772; font-size: 12px; }
.network-memo dd { margin: 2px 0 0; font-size: 14px; overflow-wrap: anywhere; }
.network-memo .memo-details summary { padding: 8px 0; background: transparent; font-size: 12px; color: #145c79; }
.network-view .actions { margin-top: 18px; }
.fw-rule-plan { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; padding: 14px; }
.fw-rule-plan section { padding: 14px; border: 1px solid #c6a365; border-radius: 6px; background: #fff5df; color: #563f18; }
.fw-rule-plan .fw-rule-keep { border-color: #6e9b95; background: #edf5f0; color: #285146; }
.fw-rule-action { display: inline-block; padding: 3px 9px; border-radius: 4px; background: #674712; color: #fff; font-size: 13px; font-weight: 700; }
.fw-rule-keep .fw-rule-action { background: #285146; }
.fw-rule-plan h4 { margin: 10px 0 0; font-size: 16px; line-height: 1.5; }
.fw-rule-plan p { margin: 10px 0 0; font-size: 13px; line-height: 1.7; }
.fw-rule-plan .fw-rule-id { margin-top: 4px; font-size: 12px; }
.fw-rule-status { margin: 0; padding: 0 14px 14px; font-size: 13px; line-height: 1.7; color: #526772; }
@media (max-width: 480px) {
  .fw-rule-plan { grid-template-columns: minmax(0, 1fr); }
}

/* Follow the tested connection from its outside source through the still-open rule. */
.connection-diagram { margin: 0; padding: 18px 14px 14px; background: #fffdf7; color: #233b46; }
.connection-diagram figcaption { font-size: 17px; font-weight: 750; line-height: 1.5; }
.connection-diagram .connection-context { margin: 3px 0 18px; color: #526772; font-size: 12px; }
.connection-path { display: grid; grid-template-columns: minmax(0, 1fr) 28px minmax(0, 1.2fr) 28px minmax(0, 1fr); align-items: center; gap: 5px; }
.connection-node { min-width: 0; text-align: center; font-size: 13px; line-height: 1.6; }
.connection-node > svg { width: 40px; height: 40px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linejoin: round; stroke-linecap: round; }
.connection-node b, .connection-node span, .connection-node strong, .connection-node code { display: block; }
.connection-node b { font-size: 15px; }
.connection-node span { font-size: 12px; }
.connection-node code { margin-top: 2px; font: 11px/1.6 ui-monospace, monospace; overflow-wrap: anywhere; }
.connection-firewall { padding: 10px 5px; border: 1px solid #c6a365; border-radius: 6px; background: #fff0cd; color: #674712; }
.connection-firewall strong { margin: 3px 0; font-size: 12px; }
.connection-arrow { color: #946422; }
.connection-arrow svg { display: block; width: 28px; height: 24px; fill: none; stroke: currentColor; stroke-width: 2.5; stroke-linejoin: round; stroke-linecap: round; }
.connection-diagram .connection-result { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 10px; margin: 18px 0 0; padding-top: 12px; border-top: 1px solid #dfd4bc; font-size: 13px; line-height: 1.6; }
.connection-result b { padding: 3px 8px; border-radius: 4px; background: #674712; color: #fff8e8; white-space: nowrap; }
.connection-blocked .connection-firewall { border-color: #6e9b95; background: #e6f2ed; color: #23564c; }
.connection-blocked .connection-arrow { color: #23564c; }
.connection-blocked .connection-stopped { color: #9c4439; }
.connection-gap { stroke-dasharray: 2 3; }
.connection-node .connection-unreached { margin-top: 5px; color: #9c4439; font-size: 12px; }
.connection-blocked .connection-result b { background: #23564c; color: #f3fff9; }
@media (max-width: 600px) {
  .connection-path { grid-template-columns: minmax(0, 1fr); gap: 5px; }
  .connection-node { display: grid; grid-template-columns: 42px minmax(0, 1fr); gap: 12px; align-items: center; text-align: left; padding: 4px 10px; }
  .connection-firewall { padding: 10px; }
  .connection-node code { font-size: 12px; }
  .connection-arrow { padding-left: 17px; }
  .connection-arrow svg { transform: rotate(90deg); }
  .connection-diagram .connection-context { margin-bottom: 12px; }
}

#episode-notes-link:not([hidden]) { display: block; margin-top: 20px; color: #145c79; text-underline-offset: 3px; }
