*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #0a0a0f;--surface: #12121a;--surface2: #1a1a26;--border: #2a2a3a;--text: #e8e8f0;--text-muted: #8888a8;--focus-ring: #ffd700;-webkit-text-size-adjust:100%;--ed-color: #00d4ff;--pq-color: #9d4edd;--composite-ok: #ffd700;--warn: #ffaa00;--danger: #ff3366;--success: #00e676;font-family:Segoe UI,system-ui,sans-serif;font-size:15px;color:var(--text);background:var(--bg)}[data-theme=light]{--bg: #f4f4f8;--surface: #ffffff;--surface2: #eeeef6;--border: #ccccdd;--text: #1a1a2e;--text-muted: #555577}body{min-height:100vh}#app{max-width:900px;margin:0 auto;padding:1.5rem}.page-header h1{font-size:1.7rem;font-weight:700;letter-spacing:-.02em}.page-header h1 .ed{color:var(--ed-color)}.page-header h1 .pq{color:var(--pq-color)}.page-header h1 .plus{color:var(--text-muted)}.page-header p{color:var(--text-muted);margin-top:.4rem;font-size:.9rem}.skip-link{position:absolute;top:-100%;left:1rem;background:var(--pq-color);color:#fff;padding:.5rem 1rem;border-radius:6px;z-index:200;font-size:.85rem;text-decoration:none}.skip-link:focus{top:.5rem}.cl-header{display:flex;justify-content:space-between;align-items:center;padding:.6rem 1rem;border-bottom:1px solid var(--border);background:var(--surface);position:sticky;top:0;z-index:50;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.cl-header-left{display:flex;align-items:center;gap:.6rem}.cl-badge{font-size:.75rem;font-weight:700;letter-spacing:.05em;border:1px solid var(--border);border-radius:4px;padding:.2rem .45rem;color:var(--text);background:var(--surface2)}.cl-header-text{display:flex;flex-direction:column;line-height:1.2}.cl-title{font-size:.7rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted)}.cl-sub{font-size:.65rem;color:var(--text-muted);text-decoration:none}.cl-sub:hover{color:var(--text)}.cl-header-nav{display:flex;align-items:center;gap:.5rem}.cl-nav-btn{font-size:.75rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;text-decoration:none;color:var(--text);border:1px solid var(--border);border-radius:5px;padding:.3rem .7rem;background:var(--surface2);transition:border-color .2s}.cl-nav-btn:hover{border-color:var(--pq-color)}.cl-theme-toggle{background:var(--surface2);border:1px solid var(--border);color:var(--text);border-radius:5px;padding:.3rem .6rem;cursor:pointer;font-size:.9rem;min-height:36px;min-width:36px;line-height:1}.cl-theme-toggle:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.page-header{text-align:center;padding:2rem 0 1.5rem;border-bottom:1px solid var(--border);margin-bottom:2rem}.exhibit{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:1.5rem;margin-bottom:1.5rem}.exhibit-header{display:flex;align-items:baseline;gap:.75rem;margin-bottom:1.2rem}.exhibit-num{font-size:.75rem;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);border:1px solid var(--border);padding:.15rem .5rem;border-radius:4px}.exhibit h2{font-size:1.1rem;font-weight:600}.keypair-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin:1rem 0}@media (max-width: 600px){.keypair-grid{grid-template-columns:1fr}}.key-card{background:var(--surface2);border:1px solid var(--border);border-radius:8px;padding:1rem}.key-card.ed-card{border-color:color-mix(in srgb,var(--ed-color) 30%,var(--border))}.key-card.pq-card{border-color:color-mix(in srgb,var(--pq-color) 30%,var(--border))}.key-card h3{font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;margin-bottom:.6rem}.key-card.ed-card h3{color:var(--ed-color)}.key-card.pq-card h3{color:var(--pq-color)}.key-row{display:flex;justify-content:space-between;align-items:center;margin:.3rem 0;font-size:.82rem}.key-label{color:var(--text-muted)}.key-value{font-family:monospace;font-size:.78rem;word-break:break-all;max-width:180px}.censor{display:inline-block;background:var(--danger);color:transparent;border-radius:3px;padding:0 .5em;-webkit-user-select:none;user-select:none;letter-spacing:-.1em}.badge{font-size:.7rem;padding:.1rem .4rem;border-radius:4px;font-weight:600;text-transform:uppercase}.badge-classical{background:color-mix(in srgb,var(--ed-color) 20%,transparent);color:var(--ed-color)}.badge-pq{background:color-mix(in srgb,var(--pq-color) 20%,transparent);color:var(--pq-color)}.badge-composite{background:color-mix(in srgb,var(--composite-ok) 20%,transparent);color:var(--composite-ok)}.size-summary{background:var(--surface2);border:1px solid var(--border);border-radius:8px;padding:1rem;margin-top:1rem;font-size:.82rem}.size-row{display:flex;justify-content:space-between;padding:.2rem 0;border-bottom:1px solid var(--border)}.size-row:last-child{border-bottom:none}.size-val{font-weight:600;color:var(--composite-ok)}.btn{padding:.6rem 1.2rem;border-radius:7px;border:none;font-size:.88rem;font-weight:600;cursor:pointer;transition:opacity .15s;min-height:44px;touch-action:manipulation}.btn:hover:not(:disabled){opacity:.85}.btn:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.btn:disabled{opacity:.4;cursor:default}.btn-primary{background:var(--composite-ok);color:#000}.btn-ed{background:var(--ed-color);color:#000}.btn-pq{background:var(--pq-color);color:#fff}.btn-danger{background:var(--danger);color:#fff}.btn-warn{background:var(--warn);color:#000}.btn-neutral{background:var(--surface2);color:var(--text);border:1px solid var(--border)}.btn-row{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1rem}.field{margin-bottom:.8rem}.field label{display:block;font-size:.8rem;color:var(--text-muted);margin-bottom:.3rem}.field input,.field textarea{width:100%;background:var(--surface2);border:1px solid var(--border);border-radius:6px;color:var(--text);padding:.5rem .75rem;font-size:1rem;font-family:inherit;min-height:44px}.field input:focus-visible,.field textarea:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.field textarea{resize:vertical;min-height:70px;font-family:monospace}.verify-panel{background:var(--surface2);border:1px solid var(--border);border-radius:8px;padding:1rem;margin-top:1rem}.verify-row{display:flex;align-items:center;gap:.6rem;padding:.4rem 0;border-bottom:1px solid var(--border);font-size:.88rem}.verify-row:last-child{border-bottom:none;font-weight:700;font-size:.95rem}.lock-icon{font-size:1.1rem}.status-ok{color:var(--success)}.status-fail{color:var(--danger)}.status-comp-ok{color:var(--composite-ok)}.status-comp-fail{color:var(--danger)}.steps{list-style:none;margin:.8rem 0}.steps li{padding:.4rem 0 .4rem 1.5rem;position:relative;font-size:.85rem;color:var(--text-muted);border-left:2px solid var(--border);margin-left:.5rem}.steps li:before{content:"▶";position:absolute;left:.3rem;font-size:.6rem;top:.55rem;color:var(--composite-ok)}.scenario{background:var(--surface2);border:1px solid var(--border);border-radius:8px;padding:1rem;margin-bottom:1rem}.scenario h3{font-size:.9rem;margin-bottom:.6rem}.scenario .timeline{font-size:.78rem;color:var(--text-muted);font-style:italic;margin-bottom:.6rem}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin-top:.8rem}.compare-table{width:100%;min-width:480px;border-collapse:collapse;font-size:.82rem}.compare-table th,.compare-table td{padding:.5rem .75rem;border:1px solid var(--border);text-align:left}.compare-table th{background:var(--surface2);color:var(--text-muted);font-weight:600}.compare-table td.ed-col{color:var(--ed-color)}.compare-table td.pq-col{color:var(--pq-color)}.compare-table td.comp-col{color:var(--composite-ok)}.compare-table tr:hover td{background:var(--surface2)}pre{background:var(--surface2);border:1px solid var(--border);border-radius:6px;padding:.8rem 1rem;font-size:.78rem;overflow-x:auto;color:var(--text-muted);margin:.6rem 0;line-height:1.5}.hex-display{font-family:monospace;font-size:.72rem;word-break:break-all;color:var(--text-muted);max-height:80px;overflow-y:auto;background:var(--surface2);border:1px solid var(--border);border-radius:6px;padding:.5rem;margin-top:.4rem}.hex-display.expanded{max-height:none}.expand-btn{background:none;border:none;color:var(--composite-ok);cursor:pointer;font-size:.75rem;margin-top:.4rem;padding:.3rem 0;min-height:44px;touch-action:manipulation}.expand-btn:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.chip{display:inline-block;background:var(--surface2);border:1px solid var(--border);border-radius:4px;font-size:.75rem;padding:.15rem .5rem;color:var(--text-muted)}.narrative{font-size:.84rem;line-height:1.6;color:var(--text-muted)}.narrative strong{color:var(--text)}.arc-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin-top:.8rem}@media (max-width: 600px){.arc-grid{grid-template-columns:1fr}}.arc-card{background:var(--surface2);border:1px solid var(--border);border-radius:8px;padding:.8rem;font-size:.8rem}.arc-card a{color:var(--ed-color);text-decoration:none}.arc-card a:hover{text-decoration:underline}.arc-card .arc-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted);margin-bottom:.4rem}.arc-this{border-color:var(--composite-ok)}.arc-this .arc-label{color:var(--composite-ok)}.spinner{display:inline-block;width:14px;height:14px;border:2px solid var(--border);border-top-color:var(--composite-ok);border-radius:50%;animation:spin .6s linear infinite;vertical-align:middle;margin-right:.4rem}@keyframes spin{to{transform:rotate(360deg)}}.hidden{display:none!important}footer{text-align:center;padding:2rem 0 1rem;color:var(--text-muted);font-size:.8rem;border-top:1px solid var(--border);margin-top:2rem}
