.hash-out{font-size:15px;word-break:break-all;line-height:1.7}.hc{transition:color .25s ease}.hc.changed{color:var(--signal);animation:hcFlash .6s ease}@keyframes hcFlash{0%{color:var(--signal);text-shadow:0 0 8px var(--signal-dim)}to{color:inherit}}.meter-row{display:flex;align-items:center;gap:14px;margin-top:18px}.meter{flex:1;height:10px;background:var(--ink);border-radius:6px;overflow:hidden;border:1px solid var(--wire-dim)}.meter-fill{height:100%;background:linear-gradient(90deg,var(--verified),var(--signal));width:0%;transition:width .5s cubic-bezier(.65,0,.35,1)}.meter-pct{font-family:var(--font-mono);font-size:22px;font-weight:600;min-width:64px;text-align:right}.bit-grid{display:grid;grid-template-columns:repeat(16,1fr);gap:3px;max-width:340px;margin:20px auto 0}.bit{aspect-ratio:1 / 1;border-radius:2px;background:var(--ink);transition:background .3s ease}.bit.on{background:var(--wire)}.bit.flash{animation:bitFlash .7s ease}@keyframes bitFlash{0%{background:var(--signal);box-shadow:0 0 6px var(--signal);transform:scale(1.3)}to{transform:scale(1)}}.sig-out{font-size:14px;word-break:break-all;line-height:1.7;color:var(--verified)}.verify-panel .badge{font-size:15px;padding:9px 18px}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:24px}@media (max-width: 780px){.two-col{grid-template-columns:1fr}}.two-col textarea{font-size:14px;line-height:1.5}:root{--ink: #0d1321;--ink-2: #131b2e;--ink-3: #1b2540;--paper: #f2ebda;--paper-text: #1a1710;--signal: #24b368;--signal-dim: #24b36833;--verified: #3fd9c4;--verified-dim: #3fd9c433;--alert: #ff4d6d;--alert-dim: #ff4d6d33;--wire: #5b6b82;--wire-dim: #5b6b8255;--text: #ede6d6;--text-dim: #a9b2c3;--font-display: "Georgia", "Times New Roman", serif;--font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "SFMono-Regular", ui-monospace, Menlo, Consolas, monospace;--radius: 4px;color-scheme:dark}*{box-sizing:border-box}button{-moz-appearance:none;appearance:none;-webkit-appearance:none;font-family:inherit}html,body,#root{margin:0;padding:0;background:var(--ink);color:var(--text);font-family:var(--font-body);min-height:100vh}body{background-image:radial-gradient(circle at 15% -10%,var(--ink-3) 0%,transparent 45%),radial-gradient(circle at 100% 110%,var(--ink-3) 0%,transparent 40%);background-attachment:fixed}::selection{background:var(--signal);color:var(--ink)}a{color:var(--verified)}code,.mono{font-family:var(--font-mono)}.shell{max-width:980px;margin:0 auto;padding:0 24px 100px}.top-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 24px;border-bottom:1px solid var(--wire-dim);margin-bottom:40px;flex-wrap:wrap}.top-bar .course-tag{font-family:var(--font-mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--text-dim);display:flex;align-items:center;gap:8px}.live-dot{width:7px;height:7px;border-radius:50%;background:var(--signal);display:inline-block;box-shadow:0 0 0 0 var(--signal-dim);animation:pulse 1.8s ease-out infinite}@keyframes pulse{0%{box-shadow:0 0 0 0 var(--signal-dim)}70%{box-shadow:0 0 0 8px transparent}to{box-shadow:0 0 0 0 transparent}}.tabs{display:flex;gap:8px}.tab-btn{font-family:var(--font-mono);font-size:13px;letter-spacing:.06em;text-transform:uppercase;padding:8px 16px;border-radius:999px;border:1px solid var(--wire-dim);background:transparent;color:var(--text-dim);cursor:pointer;transition:all .15s ease}.tab-btn:hover{color:var(--text);border-color:var(--wire)}.tab-btn.active{background:var(--signal);border-color:var(--signal);color:var(--ink);font-weight:600}.module-tag{font-family:var(--font-mono);color:var(--signal);font-size:13px;letter-spacing:.15em;text-transform:uppercase;display:block;margin-bottom:10px}.headline{font-family:var(--font-display);font-weight:700;font-size:clamp(34px,5.5vw,58px);line-height:1.05;margin:0 0 14px}.dek{font-size:16px;color:var(--text-dim);max-width:68ch;line-height:1.6;margin:0 0 40px}.panel{background:var(--paper);color:var(--paper-text);border-radius:var(--radius);padding:32px;box-shadow:0 24px 60px -20px #0000008c;text-align:left}.panel+.panel{margin-top:24px}.panel-label{font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--wire);margin-bottom:16px;display:block}.panel-dark{background:var(--ink-2);color:var(--text);border:1px solid var(--wire-dim);border-radius:var(--radius);padding:32px;text-align:left}.panel-dark+.panel-dark{margin-top:24px}textarea,input[type=text]{font-family:var(--font-mono);font-size:15px;width:100%;padding:12px 14px;background:#fff;border:1px solid var(--wire-dim);border-radius:var(--radius);color:var(--paper-text);resize:vertical}textarea:focus,input:focus{outline:2px solid var(--signal);outline-offset:1px}.btn{font-family:var(--font-mono);font-size:13px;text-transform:uppercase;letter-spacing:.08em;padding:12px 22px;border-radius:var(--radius);border:1px solid var(--wire-dim);background:transparent;color:var(--text);cursor:pointer;transition:all .15s ease}.btn:hover{border-color:var(--signal);color:var(--signal)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-primary{background:var(--signal);border-color:var(--signal);color:var(--ink);font-weight:600}.btn-primary:hover{background:transparent;color:var(--signal)}.btn-on-paper{border-color:var(--wire);color:var(--paper-text)}.btn-on-paper:hover{border-color:var(--signal);color:#b5471f}.btn-alert{border-color:var(--alert);color:var(--alert)}.btn-alert:hover{background:var(--alert);color:var(--ink)}.badge{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:13px;text-transform:uppercase;letter-spacing:.08em;padding:7px 14px;border-radius:999px;border:1px solid var(--wire-dim);color:var(--text-dim)}.badge-verified{border-color:var(--verified);color:var(--verified)}.badge-alert{border-color:var(--alert);color:var(--alert)}.badge-signal{border-color:var(--signal);color:var(--signal)}.demo-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}.mt-16{margin-top:16px}.mt-24{margin-top:24px}.flex{display:flex}.gap-12{gap:12px}.wrap{flex-wrap:wrap}.center{align-items:center}.between{justify-content:space-between}.text-dim{color:var(--text-dim)}.text-small{font-size:13px}.kv{display:flex;justify-content:space-between;gap:12px;padding:8px 0;font-family:var(--font-mono);font-size:13px}.kv .k{color:var(--text-dim)}.verify-note{margin:16px 0 0;color:var(--text-dim);line-height:1.6;font-size:15px}@media (prefers-reduced-motion: reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media (max-width: 640px){.panel,.panel-dark{padding:20px}.top-bar{padding:14px 16px}}
