*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #0a0a0f;--surface: #12121a;--surface2: #1a1a26;--border: #2a2a3a;--text: #e8e8f0;--text-muted: #9a9ac0;--focus-ring: #ffd700;-webkit-text-size-adjust:100%;--ed-color: #2bd9ff;--pq-color: #c79bf0;--composite-ok: #ffd700;--warn: #ffb733;--danger: #ff708f;--success: #3ff08f;--ed-fill: #00c2f0;--pq-fill: #7c3aed;--gold-fill: #ffd700;--warn-fill: #ffaa00;--danger-fill: #c01038;font-family:Segoe UI,system-ui,sans-serif;font-size:15px;color:var(--text);background-color:var(--bg);color-scheme:dark}[data-theme=light]{color-scheme:light;--bg: #f4f4f8;--surface: #ffffff;--surface2: #eeeef6;--border: #ccccdd;--text: #1a1a2e;--text-muted: #4a4a6a;--focus-ring: #6d28d9;--ed-color: #0b6e8c;--pq-color: #7c3aed;--composite-ok: #7a6000;--warn: #8a5a00;--danger: #c01038;--success: #0a7a32}body{min-height:100vh}#app{max-width:900px;margin:0 auto;padding:1.5rem}.cl-hero-title .ed{color:var(--ed-color)}.cl-hero-title .pq{color:var(--pq-color)}.cl-hero-title .plus{color:var(--text-muted)}.cl-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:clamp(1rem,4vw,3rem);flex-wrap:wrap;margin:clamp(1rem,3vw,2rem) 0 1.5rem}.cl-hero-main{flex:1 1 22rem;min-width:min(100%,20rem)}.cl-hero-title{margin:0;font-size:clamp(1.6rem,3.8vw,2.7rem);font-weight:700;line-height:1.1;letter-spacing:.01em}.cl-hero-sub{margin:.4rem 0 0;font-size:clamp(.9rem,1.6vw,1.05rem);letter-spacing:.01em;opacity:.85}.cl-hero-desc{margin:.55rem 0 0;font-size:1rem;line-height:1.5;color:var(--text-muted);max-width:60ch}.cl-hero-why{flex:0 1 min(40%,26rem);min-width:min(100%,15rem);border:1px solid var(--border);border-radius:10px;padding:.85rem 1.05rem;background:color-mix(in oklab,var(--pq-color) 6%,transparent)}.cl-hero-why-label{display:block;font-size:.68rem;font-weight:700;letter-spacing:.14em}.cl-hero-why-text{margin:.35rem 0 0;font-size:.95rem;line-height:1.5}@media (max-width:640px){.cl-hero{flex-direction:column}.cl-hero-why{flex-basis:auto;width:100%}}.primer{background-color:var(--surface);border:1px solid var(--border);border-left:4px solid var(--composite-ok);border-radius:12px;padding:1.25rem 1.5rem;margin-bottom:1.5rem}.primer-hook{font-size:1.05rem;line-height:1.6;color:var(--text)}.primer-hook .ed{color:var(--ed-color);font-weight:600}.primer-hook .pq{color:var(--pq-color);font-weight:600}.primer-caption{margin-top:.7rem;font-size:.78rem;line-height:1.5;color:var(--text-muted)}.primer-caption code{font-family:ui-monospace,monospace;background-color:color-mix(in srgb,var(--composite-ok) 12%,transparent);border-radius:3px;padding:0 .25em}.nowrap{white-space:nowrap}.mechanism{margin-top:1.15rem;border-top:1px solid var(--border);padding-top:1rem}.mechanism-cap{font-size:.82rem;font-weight:600;color:var(--text-muted);margin-bottom:.9rem}.mech-flow{display:grid;grid-template-columns:auto auto 1fr auto auto;align-items:center;gap:.5rem}@media (max-width: 640px){.mech-flow{grid-template-columns:1fr;gap:.6rem}.mech-arrows{display:none!important}}.mech-msg{background-color:var(--surface2);border:1px solid var(--border);border-radius:8px;padding:.7rem .6rem;text-align:center;font-size:.78rem;color:var(--text);font-weight:600}.mech-arrows{display:flex;flex-direction:column;gap:1.6rem;color:var(--text-muted)}.mech-arrows span:before{content:"→";font-size:1.1rem}.mech-locks{display:grid;gap:.55rem}.mech-lock{display:grid;grid-template-columns:auto 1fr;grid-template-areas:"icon name" "icon kind" "icon state";column-gap:.55rem;align-items:center;border:2px solid var(--border);border-radius:8px;padding:.55rem .7rem;background-color:var(--surface2);transition:border-color .2s,background-color .2s}.mech-lock-icon{grid-area:icon;font-size:1.5rem}.mech-lock-name{grid-area:name;font-weight:700;font-size:.9rem}.mech-lock-kind{grid-area:kind;font-size:.72rem;color:var(--text-muted)}.mech-lock-state{grid-area:state;font-size:.74rem;font-weight:600;color:var(--text-muted)}.mech-lock.ed-lock .mech-lock-name{color:var(--ed-color)}.mech-lock.pq-lock .mech-lock-name{color:var(--pq-color)}.mech-lock[data-lit=ok]{border-color:var(--success);background-color:color-mix(in srgb,var(--success) 12%,var(--surface2))}.mech-lock[data-lit=ok] .mech-lock-state{color:var(--success)}.mech-lock[data-lit=fail]{border-color:var(--danger);background-color:color-mix(in srgb,var(--danger) 12%,var(--surface2))}.mech-lock[data-lit=fail] .mech-lock-state{color:var(--danger)}.mech-and{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.15rem;border:2px dashed var(--border);border-radius:50%;width:64px;height:64px;color:var(--text);background-color:var(--surface2)}.mech-and-symbol{font-weight:800;font-size:.85rem;letter-spacing:.05em}.mech-and-note{font-size:.6rem;color:var(--text-muted);text-align:center;line-height:1.1}.mech-out{border:2px solid var(--border);border-radius:8px;padding:.7rem .6rem;text-align:center;font-weight:700;font-size:.82rem;color:var(--text);background-color:var(--surface2);transition:border-color .2s,background-color .2s,color .2s}.mech-out[data-lit=ok]{border-color:var(--success);background-color:color-mix(in srgb,var(--success) 15%,var(--surface2));color:var(--success)}.mech-out[data-lit=fail]{border-color:var(--danger);background-color:color-mix(in srgb,var(--danger) 15%,var(--surface2));color:var(--danger)}.mechanism-legend{margin-top:.9rem;font-size:.78rem;line-height:1.5;color:var(--text-muted)}.mechanism-legend .lit-ok{color:var(--success);font-weight:700}.mechanism-legend .lit-fail{color:var(--danger);font-weight:700}@media (max-width: 640px){.mech-and{width:100%;height:auto;border-radius:8px;flex-direction:row;gap:.5rem;padding:.5rem}}.mprime{display:inline-block;margin-top:.25rem;color:var(--text)}.gloss{text-decoration:underline dotted;text-underline-offset:3px;cursor:help;color:var(--text)}.gloss-prefix{color:var(--warn)}.gloss-label{color:var(--pq-color)}.gloss-ctx{color:var(--ed-color)}.gloss-ph{color:var(--composite-ok)}.gloss-hint{display:inline-block;margin-left:.4rem;font-size:.72rem;color:var(--text-muted);font-style:italic}.sig-struct{display:grid;grid-template-columns:3fr 1fr;gap:.5rem;margin-top:.3rem}@media (max-width: 520px){.sig-struct{grid-template-columns:1fr}}.sig-seg{border:1px solid var(--border);border-radius:6px;padding:.5rem .6rem;background-color:var(--surface2);overflow:hidden}.sig-seg-pq{border-color:color-mix(in srgb,var(--pq-color) 45%,var(--border))}.sig-seg-ed{border-color:color-mix(in srgb,var(--ed-color) 45%,var(--border))}.sig-seg-name{display:block;font-size:.72rem;font-weight:700;letter-spacing:.03em;margin-bottom:.35rem}.sig-seg-pq .sig-seg-name{color:var(--pq-color)}.sig-seg-ed .sig-seg-name{color:var(--ed-color)}.sig-seg-hex{display:block;font-family:ui-monospace,monospace;font-size:.72rem;line-height:1.5;color:var(--text-muted);word-break:break-all}.sig-seg-ell{color:var(--text-muted);font-style:italic}.sig-flip{background-color:var(--warn-fill);color:#000;border-radius:2px;padding:0 1px;font-weight:700}.sig-struct-note{margin-top:.5rem;font-size:.76rem;line-height:1.5;color:var(--text-muted)}.sig-flip-swatch{display:inline-block;width:.8em;height:.8em;vertical-align:-1px;background-color:var(--warn-fill);border-radius:2px}.why-shor{background-color:var(--surface2);border:1px solid var(--border);border-left:4px solid var(--pq-color);border-radius:8px;padding:.9rem 1.1rem;margin-bottom:1.1rem}.why-shor-lead{font-size:.85rem;line-height:1.6;color:var(--text-muted)}.why-shor-lead strong{color:var(--text)}.why-shor-lead .ed{color:var(--ed-color);font-weight:600}.why-shor-lead .pq{color:var(--pq-color);font-weight:600}.why-shor-lead a,.why-shor-more a{color:var(--ed-color)}.why-shor-more{margin-top:.6rem;font-size:.83rem}.why-shor-more summary{cursor:pointer;color:var(--text-muted);font-weight:600}.why-shor-more summary:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.why-shor-more p{margin-top:.5rem;color:var(--text-muted);line-height:1.6}.skip-link{position:absolute;top:-100%;left:1rem;background-color:var(--pq-fill);color:#fff;padding:.5rem 1rem;border-radius:6px;z-index:1100;font-size:.85rem;text-decoration:none}.skip-link:focus{top:.5rem}#main-content:focus{outline:none}.exhibit{background-color: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-color: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-color: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;background-color:var(--surface2);border:1px solid transparent}.badge-classical{border-color:color-mix(in srgb,var(--ed-color) 45%,var(--border));color:var(--ed-color)}.badge-pq{border-color:color-mix(in srgb,var(--pq-color) 45%,var(--border));color:var(--pq-color)}.badge-composite{border-color:color-mix(in srgb,var(--composite-ok) 45%,var(--border));color:var(--composite-ok)}.size-summary{background-color:var(--surface2);border:1px solid var(--border);border-radius:8px;padding:1rem;margin-top:1rem;font-size:.82rem}.size-row{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.25rem 1rem;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);text-align:right;overflow-wrap:anywhere}.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-color:var(--gold-fill);color:#000}.btn-ed{background-color:var(--ed-fill);color:#000}.btn-pq{background-color:var(--pq-fill);color:#fff}.btn-danger{background-color:var(--danger-fill);color:#fff}.btn-warn{background-color:var(--warn-fill);color:#000}.btn-neutral{background-color: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-color: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}.field-error{color:var(--danger);font-size:.78rem;margin-top:.35rem;font-weight:600}.verify-panel{background-color: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-color: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}.table-wrap:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.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-color:var(--surface2);color:var(--text-muted);font-weight:600}.compare-table tbody th[scope=row]{color:var(--text);text-align:left}.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-color:var(--surface2)}pre{background-color: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-color: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-color: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-color: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)}}.method-note{background-color:var(--surface2);border:1px solid var(--border);border-radius:8px;padding:.6rem .9rem;margin-bottom:1rem;font-size:.82rem}.method-note summary{cursor:pointer;color:var(--text-muted);font-weight:600;letter-spacing:.02em}.method-note summary:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.method-note p{color:var(--text-muted);line-height:1.6;margin-top:.6rem}.method-note code,.narrative code{font-family:ui-monospace,monospace;font-size:.92em;background-color:color-mix(in srgb,var(--composite-ok) 12%,transparent);border-radius:3px;padding:0 .25em}@media (max-width: 600px){#app{padding:1rem}.exhibit{padding:1.1rem;border-radius:10px}.exhibit-header{gap:.5rem;flex-wrap:wrap}.btn-row .btn{flex:1 1 auto}.verify-row{flex-wrap:wrap}}@media (forced-colors: active){.btn,.exhibit,.key-card,.scenario,.verify-panel,.method-note,.size-summary,.hex-display,.compare-table th,.compare-table td,.primer,.mech-msg,.mech-lock,.mech-and,.mech-out,.sig-seg,.why-shor{border:1px solid CanvasText}.btn:focus-visible,.field input:focus-visible,.expand-btn:focus-visible{outline:2px solid Highlight}.status-ok,.status-fail,.status-comp-ok,.status-comp-fail{color:CanvasText}.censor{background-color:CanvasText}.mech-lock[data-lit=ok],.mech-lock[data-lit=fail],.mech-out[data-lit=ok],.mech-out[data-lit=fail]{border-color:CanvasText;background:Canvas;color:CanvasText}.sig-flip{background-color:Highlight;color:HighlightText}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}.spinner{animation:none;border-top-color:var(--composite-ok)}}.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}footer a{color:var(--ed-color)}
