.technology-main{max-width:1000px}
.technology-main h1{font-size:clamp(29px,4.4vw,45px)}
.technology-main h2{margin-top:0}
.technology-main h3{font-size:17px;line-height:1.7;margin:12px 0}
.technology-main p,.technology-main li{font-size:14px;line-height:1.95;overflow-wrap:anywhere}
.technology-main li{margin-bottom:8px}
.technology-main a{color:#226b51}
.tech-toc,.key-actions{display:flex;flex-wrap:wrap;gap:10px 14px;margin:0 0 24px}
.tech-toc a{padding:10px 14px;background:#e9f0e6;border:1px solid #d5dece;border-radius:10px}
.technology-main .section-subtitle{font-size:20px;margin-top:36px}
.illustrated-flow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:24px 0}
.illustrated-flow.two-columns{grid-template-columns:repeat(2,minmax(0,1fr))}
.art-card{background:#f2f5ed;border:1px solid #d5dece;border-radius:15px;padding:20px;display:flex;flex-direction:column;align-items:center;text-align:center;color:#173d35}
.technology-main .art-card p{font-size:13px;margin:5px 0 12px;text-align:left}
.art-card h3{margin:7px 0 10px}
.art-card>b{font-size:12px;line-height:1.8}
.step-label{display:block;font-size:12px;font-weight:700;margin-bottom:10px;line-height:1.7}
.threat-label{display:block;font-size:11px;font-weight:700;line-height:1.8;border:1px solid #cad6c5;border-radius:20px;background:#fffefa;padding:4px 11px;margin-bottom:8px}
.tech-picture{display:block;width:140px;max-width:100%;height:105px;flex-shrink:0;margin:6px auto;color:#226b51}
.public-role .tech-picture{color:#226b51}
.operator-role .tech-picture{color:#14514b}
.temporary-role .tech-picture{color:#a36b13}
.working-role .tech-picture{color:#356993}
.signature-role .tech-picture{color:#735189}
.technology-main .takeaway{background:#e9f0e6;border-left:4px solid #226b51;padding:16px 18px;font-weight:700;border-radius:0 10px 10px 0;margin-top:22px}
.key-story{margin:24px 0}
.key-story-step{display:grid;grid-template-columns:125px minmax(0,1fr);gap:0 20px;align-items:center;border:1px solid #d5dece;background:#fffefa;border-radius:15px;padding:20px}
.key-story-step .step-label{grid-column:1/-1;text-align:left;margin-bottom:3px}
.key-story-step .tech-picture{width:125px;height:94px}
.key-story-step p{margin:5px 0}
.key-story-step.temporary-role{background:#fff9ed}
.key-story-step.working-role{background:#f0f6fa}
.key-story-step.operator-role{background:#edf4ef}
.story-arrow{text-align:center;font-size:27px;line-height:1.3;color:#65766e;padding:5px}
.signature-pair{display:grid;grid-template-columns:minmax(0,1fr) 36px minmax(0,1fr);align-items:center;margin:20px 0;border:1px solid #ded6e3;border-radius:15px;background:#f8f4fa;padding:18px 12px}
.signature-pair>div{display:flex;flex-direction:column;align-items:center;text-align:center;gap:5px}
.signature-pair b{font-size:14px}.signature-pair span{font-size:12px;line-height:1.8}.signature-pair .pair-arrow{font-size:24px;text-align:center}.signature-pair .tech-picture{width:105px;height:79px}
.clock-time{font-size:20px!important;font-variant-numeric:tabular-nums}
.clock-vote .art-card p{margin:6px 0;text-align:center}
.vote-label{font-size:12px;border:1px solid #b6ceb8;border-radius:20px;padding:3px 12px;color:#226b51;background:#eef6e9}
.clock-outlier .tech-picture{color:#a56c38}
.clock-outlier .vote-label{color:#945d33;border-color:#d9c2ac;background:#fbf3e9}
.technology-main figure{margin:25px 0}
.technology-main figcaption{font-size:16px;font-weight:700;line-height:1.8;margin-bottom:10px}
.sequence-figure{background:#f8faf5;border:1px solid #d5dece;padding:20px;border-radius:16px}
.technology-main .diagram-help{font-size:12px;margin:0 0 14px}
.seq-head{display:grid;grid-template-columns:1fr 1fr;gap:20px;text-align:center}
.seq-head .tech-picture{width:76px;height:57px}
.seq-head b{font-size:13px}
.seq-lines{position:relative;list-style:none;margin:15px 0 0;padding:0}
.seq-lines::before,.seq-lines::after{content:"";position:absolute;top:0;bottom:0;width:0;border-left:2px dashed #b8c9b9;left:25%}
.seq-lines::after{left:75%}
.seq-lines li{position:relative;margin:0 0 19px;padding:0}
.seq-lines p{position:relative;background:#edf4e9;border:1px solid #c7d6c5;border-radius:10px;padding:11px 13px;margin:0;line-height:1.8;z-index:1}
.seq-lines b,.seq-lines span,.seq-lines em{display:block;font-size:12px}
.seq-lines em{font-style:normal;font-weight:700;color:#a53d25;font-size:11px;margin-top:4px}
.seq-local p{width:46%}
.seq-server p{width:46%;margin-left:auto;background:#f5eef8;border-color:#ded0e7}
.seq-to-server p,.seq-to-client p{width:88%;margin:0 auto 10px;text-align:center;background:#fffefa}
.message-arrow{position:relative;display:block;width:50%;height:2px;background:#226b51;margin:0 auto}
.message-arrow::after{content:"";position:absolute;right:-1px;top:-5px;border-left:9px solid #226b51;border-top:6px solid transparent;border-bottom:6px solid transparent}
.seq-to-client .message-arrow::after{right:auto;left:-1px;border-left:0;border-right:9px solid #226b51}
.role-map{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.role-actor{border:1px solid #d5dece;border-radius:15px;padding:20px;background:#f2f5ed}
.role-actor h3{text-align:center}
.role-actor ul{list-style:none;margin:15px 0;padding:0}
.role-actor li{font-size:12px;border:1px solid #d5dece;border-radius:24px;background:#fffefa;padding:10px 14px;line-height:1.7;text-align:center}
.case-connection{text-align:center;border-top:1px solid #d5dece;padding-top:12px}
.case-connection>span{font-size:25px}.technology-main .case-connection p{font-size:12px;line-height:1.8;margin:0}
.tech-table{overflow-x:auto;margin:20px 0}
.tech-table table{width:100%;border-collapse:collapse;font-size:13px;line-height:1.8}
.tech-table th,.tech-table td{padding:12px;text-align:left;vertical-align:top;border-bottom:1px solid #dce3db;min-width:110px}
.tech-table th{background:#e9f0e6}
.holdings td:first-child,.loss-table td:first-child{font-weight:700}
.holdings td{width:33.33%}
.technology-main pre{max-width:100%;overflow:auto;background:#e9f0e6;border:1px solid #d5dece;border-radius:12px;padding:18px;font-size:12px;line-height:1.8}
.technology-main pre.public-key{white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-all}
.technology-main pre code{font-size:inherit}
.key-fingerprint{display:block;background:#e9f0e6;border:1px solid #d5dece;padding:16px;border-radius:12px;overflow-wrap:anywhere;font-size:13px}
.key-actions{align-items:center;margin-top:20px}
.key-download{border:1px solid #226b51;border-radius:10px;padding:12px 16px;font-weight:700}
.technology-main summary{cursor:pointer;font-weight:700;line-height:1.8}
.technology-main details{margin-top:20px}
.technology-main .technical-root{background:#f8faf5;border:1px solid #d5dece;border-radius:12px;padding:18px}
.technical-root details{padding-top:15px}
.technical-root p{font-size:13px}
.technology-main details p{padding-left:0}
.tech-note{background:#fff5df;border-left:3px solid #c6a15c;padding:12px 16px}
@media(max-width:650px){
 .technology-main p,.technology-main li{font-size:13px}
 .tech-toc{gap:8px}.tech-toc a{font-size:12px;padding:9px 11px}
 .illustrated-flow,.illustrated-flow.two-columns,.role-map{grid-template-columns:1fr;gap:12px}
 .art-card{padding:18px}.art-card .tech-picture{width:110px;height:83px}
 .key-story-step{grid-template-columns:1fr;gap:0;padding:18px}
 .key-story-step .tech-picture{width:100px;height:75px}.key-story-step h3{font-size:15px}
 .technology-main .key-story-step p{font-size:12px}.step-label{font-size:11px}
 .signature-pair{grid-template-columns:minmax(0,1fr) 20px minmax(0,1fr);padding:12px 6px}
 .signature-pair b{font-size:12px}.signature-pair span{font-size:11px}.signature-pair .tech-picture{width:85px;height:65px}
 .clock-vote{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
 .clock-vote .art-card{padding:12px 4px}.clock-vote .tech-picture{width:70px;height:53px}
 .clock-time{font-size:12px!important}.vote-label{font-size:10px;padding:3px 5px}.clock-vote .art-card p{font-size:11px}
 .sequence-figure{padding:15px 10px}.seq-head{gap:8px}.seq-head b{font-size:11px}
 .seq-lines p{padding:9px 8px}.seq-lines b,.seq-lines span{font-size:11px}.seq-lines em{font-size:10px}
 .seq-local p,.seq-server p{width:47%}.seq-to-server p,.seq-to-client p{width:94%}
 .technology-main figcaption{font-size:14px}
 .role-actor{padding:18px}.role-actor .tech-picture{width:100px;height:75px}
 .holdings table,.holdings tbody,.holdings tr,.holdings td,.loss-table table,.loss-table tbody,.loss-table tr,.loss-table td{display:block;width:100%;min-width:0}
 .holdings thead,.loss-table thead{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0)}
 .holdings tr,.loss-table tr{border:1px solid #d5dece;border-radius:12px;overflow:hidden;margin-bottom:14px}
 .holdings td:first-child,.loss-table td:first-child{background:#e9f0e6}.holdings td:last-child,.loss-table td:last-child{border-bottom:0}
 .holdings td:nth-child(2)::before,.holdings td:nth-child(3)::before{display:block;font-size:12px;font-weight:700;margin-bottom:6px;color:#226b51}
 .holdings td:nth-child(2)::before{content:"利用者"}.holdings td:nth-child(3)::before{content:"運営"}
 .technology-main pre{padding:12px;font-size:11px}.tech-table th,.tech-table td{padding:10px}
}

.threat-cards strong{font-size:14px;line-height:1.9}
.seq-timeline{margin-top:24px}
.seq-timeline li:last-child{margin-bottom:0}
.seq-timeline .seq-repeat{margin-bottom:0;padding-bottom:19px}
.seq-repeat::before{content:"";position:absolute;right:-6px;top:0;bottom:0;width:12px;border-right:2px solid #82a68a;pointer-events:none}
.seq-repeat-start::before{border-top:2px solid #82a68a;border-top-right-radius:8px}
.seq-repeat-end::before{border-bottom:2px solid #82a68a;border-bottom-right-radius:8px}
.seq-timeline .seq-repeat-end{margin-bottom:24px;padding-bottom:12px}
.seq-repeat-label{position:relative;z-index:1;width:fit-content;max-width:100%;margin:0 0 14px auto;background:#e9f0e6;color:#226b51;border-radius:8px;padding:7px 10px;font-size:12px;font-weight:700;line-height:1.8}
.seq-save-final p{background:#fff9ed;border-color:#d8c8a6}
.technology-main .loop-footnote{margin:18px 0 0;font-size:11px}
@media(max-width:650px){.threat-cards strong{font-size:13px}.seq-repeat-label{font-size:10px;padding:7px 6px}.seq-repeat::before{right:-5px;width:8px}}
