/* Museum / Cryptography Lab typography, palette and card treatments from
   /style.css, served independently to avoid its external font import. */
@font-face{font-family:'JetBrains Mono';src:url('./fonts/JetBrainsMono-Regular.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'JetBrains Mono';src:url('./fonts/JetBrainsMono-SemiBold.woff2') format('woff2');font-weight:600 800;font-display:swap}
:root{color-scheme:dark;--accent:#00b4ff;--text:#c9d1d9;--bright:#d9f8ff;--muted:#92a9b6;--gold:#ffd08a;--line:rgba(0,180,255,.34);--green:#8cffb0;--red:#ff9298;--panel:linear-gradient(145deg,rgba(7,23,28,.94),rgba(5,14,19,.94))}
*{box-sizing:border-box}body{margin:0;background:#050505;color:var(--text);font-family:'JetBrains Mono',monospace;font-size:14px;line-height:1.65}a{color:var(--accent);text-underline-offset:.25em}a:hover{color:var(--gold)}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--gold);outline-offset:4px}button:disabled,select:disabled,input:disabled{opacity:.48;cursor:not-allowed}button{cursor:pointer}button,select{border:1px solid var(--line);background:#0a1d26;color:var(--bright);padding:.65rem .85rem;border-radius:3px}button:hover:not(:disabled){border-color:var(--accent);background:#103042}button.primary{background:var(--accent);border-color:var(--accent);color:#04131b;font-weight:700}button.danger{border-color:#9b4349;color:var(--red)}input[type=password],input[type=number],select{width:100%;min-width:0;background:#061018;border:1px solid var(--line);color:var(--bright);padding:.7rem;border-radius:3px}input[type=checkbox],input[type=range]{accent-color:var(--accent)}input[type=range]{width:100%}input[type=number]{font-variant-numeric:tabular-nums}label{display:block;color:var(--bright);font-size:.78rem}small,.help{font-size:.72rem;color:var(--muted);line-height:1.6}small{display:block;margin-top:.35rem}p{margin:.65rem 0}h1,h2,h3{color:var(--bright)}h2{font-size:.93rem;letter-spacing:.065em;margin:0 0 .8rem}h3{font-size:.84rem;margin:.5rem 0}h1{font-size:clamp(1.8rem,3.4vw,3.1rem);line-height:1.2;letter-spacing:.02em;margin:.7rem 0}code{color:var(--gold)}.content{max-width:1280px;margin:auto;padding:2rem 2rem 4rem}.skip-link{position:absolute;left:1rem;top:-100px}.skip-link:focus{top:1rem;background:#051a24;padding:.75rem;z-index:5}.museum-site-nav{display:flex;gap:1rem;justify-content:space-between;align-items:center;margin-bottom:1.6rem;padding-right:4rem}.museum-site-nav a{border:1px solid var(--line);border-radius:3px;padding:.45rem .9rem;text-decoration:none;font-size:.77rem}.museum-back{text-decoration:none;font-size:.75rem;font-weight:600;letter-spacing:.08em}.museum-status{display:inline-flex;border:1px solid rgba(140,255,176,.35);color:var(--green);font-size:.65rem;font-weight:600;letter-spacing:.1em;padding:.2rem .5rem;margin-left:.8rem}.prompt{color:var(--accent);font-size:clamp(.85rem,2vw,1.1rem);display:block;letter-spacing:0;font-weight:400}.kicker{color:var(--gold);font-size:.67rem;letter-spacing:.1em;font-weight:600;margin:1.1rem 0 .5rem}.hero-copy{max-width:850px;color:var(--muted);margin-top:.9rem;font-size:.92rem}.privacy-banner{border-left:3px solid var(--green);background:rgba(140,255,176,.035);padding:.8rem 1rem;margin:1.4rem 0 1.6rem}.privacy-banner strong{color:var(--green);font-size:.85rem;letter-spacing:.025em}.privacy-banner p{font-size:.74rem;margin:.4rem 0 0}.lab-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:1rem;align-items:start}.panel{border:1px solid var(--line);background:var(--panel);box-shadow:inset 0 0 22px rgba(0,180,255,.025);padding:1.2rem;min-width:0}.panel-header{display:flex;justify-content:space-between;gap:.8rem;align-items:baseline}.panel-header .kicker{margin:0;font-size:.6rem}.field{margin:1rem 0}.field>label{margin-bottom:.4rem}.input-help{color:var(--muted);font-size:.7rem}.example-buttons{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.75rem}.example-buttons button{font-size:.68rem;padding:.3rem .5rem}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:.8rem;margin:1rem 0}.settings-grid label select,.settings-grid label input[type=number]{margin-top:.35rem}.check-grid{display:flex;gap:.5rem .9rem;flex-wrap:wrap;margin:.7rem 0}.check-grid label{font-size:.72rem;display:flex;align-items:center;gap:.35rem}.characters{font-size:.65rem;overflow-wrap:anywhere;border:1px dashed var(--line);padding:.5rem .65rem;margin:.65rem 0;color:var(--muted)}.characters code{display:block;font-size:.72rem;word-break:break-all}.controls{display:flex;flex-wrap:wrap;gap:.5rem;border-top:1px solid var(--line);padding-top:1rem;margin-top:1rem}.controls button{font-size:.75rem}.capability{color:var(--muted);font-size:.68rem;border-top:1px dashed var(--line);padding-top:.75rem;margin-top:.85rem;overflow-wrap:anywhere}.terminal-status{display:flex;gap:.7rem;align-items:center;border-bottom:1px solid var(--line);padding-bottom:.8rem;margin-bottom:.8rem}.status-dot{width:7px;height:7px;flex:none;border-radius:50%;background:var(--muted)}body[data-state=running] .status-dot{background:var(--accent);box-shadow:0 0 9px rgba(0,180,255,.6)}body[data-state=success] .status-dot{background:var(--green)}body[data-state=error] .status-dot{background:var(--red)}#status{margin:0;font-weight:600;color:var(--bright);font-size:.79rem}.metrics{display:grid;grid-template-columns:1fr 1fr;gap:1rem .8rem;margin:1rem 0}.metric{border-left:2px solid rgba(0,180,255,.2);padding-left:.7rem;min-width:0}.metric dt{color:var(--muted);font-size:.65rem;margin-bottom:.3rem}.metric dd{margin:0;color:var(--bright);font-size:1.12rem;font-weight:600;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.metric dd.small-value{font-size:.83rem}.metric small{font-size:.6rem;margin:.25rem 0 0}.engine-rates{display:grid;grid-template-columns:1fr 1fr;gap:.8rem;margin:1.1rem 0}.engine-rate{padding:.7rem;border:1px solid var(--line);min-width:0}.engine-rate span{color:var(--muted);font-size:.65rem}.engine-rate strong{display:block;font-size:.9rem;color:var(--accent);overflow-wrap:anywhere}.engine-rate.gpu strong{color:var(--gold)}.engine-meter{height:3px;background:#0b2730;margin-top:.5rem}.engine-meter i{display:block;height:3px;width:0;background:var(--accent)}.gpu .engine-meter i{background:var(--gold)}.progress-head{display:flex;gap:1rem;justify-content:space-between;color:var(--muted);font-size:.68rem;margin:.9rem 0 .3rem}.progress-head output{color:var(--bright)}progress{display:block;width:100%;height:7px;accent-color:var(--accent)}progress::-webkit-progress-bar{background:#10232d}progress::-webkit-progress-value{background:var(--accent)}.range-info{font-size:.67rem;color:var(--muted);overflow-wrap:anywhere;margin-top:.7rem}.estimate-note{font-size:.67rem;color:var(--muted);border-left:2px solid var(--gold);padding-left:.65rem;margin-top:1rem}.result{margin-top:1rem;padding:1rem;border:1px solid rgba(140,255,176,.45);background:rgba(140,255,176,.04)}.result h3{color:var(--green)}.result p{font-size:.74rem}.result button{font-size:.73rem}.result output{display:block;overflow-wrap:anywhere;color:var(--green);font-size:1.05rem;min-height:1.2rem;margin:.6rem 0}.result.stopped,.result.exhausted{border-color:rgba(255,208,138,.4);background:rgba(255,208,138,.025)}.result.error{border-color:rgba(255,146,152,.45);background:rgba(255,146,152,.035)}.result.error h3{color:var(--red)}.result-details{display:grid;grid-template-columns:1fr 1fr;gap:.55rem;margin:.8rem 0}.result-details span{font-size:.63rem;color:var(--muted)}.result-details strong{display:block;color:var(--bright);font-size:.73rem;overflow-wrap:anywhere}.ledger{margin-top:1rem;overflow:hidden}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:.69rem;text-align:left}th{color:var(--muted);font-weight:400}th,td{padding:.55rem .4rem;border-bottom:1px solid rgba(0,180,255,.14)}td{overflow-wrap:anywhere}td:nth-child(2){font-variant-numeric:tabular-nums}td:first-child{width:42%}.phase-active{background:rgba(0,180,255,.055)}.phase-done{color:var(--green)}.notes{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:1rem}.notes p,.notes li{font-size:.76rem;line-height:1.75}.notes ul{padding-left:1.2rem}.notes h3{color:var(--gold);font-size:.75rem}details summary{color:var(--bright);cursor:pointer;font-size:.76rem}details p{color:var(--muted)}footer{border-top:1px solid var(--line);color:var(--muted);font-size:.7rem;margin-top:2rem;padding-top:1rem;display:flex;flex-wrap:wrap;gap:.7rem;justify-content:space-between}[hidden]{display:none!important}
@media(max-width:950px){.content{padding:1.5rem 1.2rem 3rem}.lab-grid{grid-template-columns:1fr}.notes{grid-template-columns:1fr}.hero-copy{font-size:.84rem}}
@media(max-width:480px){.content{padding:1rem .65rem 2.5rem}.panel{padding:.9rem}.museum-site-nav{padding-right:3rem;gap:.5rem}.museum-site-nav a{padding:.4rem .6rem;font-size:.67rem}.museum-status{margin-left:0;margin-top:.5rem}.hero-copy{font-size:.77rem}.privacy-banner{padding:.75rem}.privacy-banner strong{font-size:.73rem}.settings-grid{gap:.65rem}.metrics{gap:.8rem .5rem}.metric dd{font-size:1rem}.metric dd.small-value{font-size:.76rem}.panel-header{flex-wrap:wrap}.controls button{font-size:.69rem;padding:.6rem .7rem}th,td{font-size:.61rem;padding:.5rem .25rem}.result-details{grid-template-columns:1fr}.engine-rates{gap:.5rem}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
