.experiment[data-astro-cid-psa4kgms]{padding:80px 0;max-width:840px}.experiment__header[data-astro-cid-psa4kgms]{margin-bottom:40px}.experiment__label[data-astro-cid-psa4kgms]{font-family:var(--font-mono);font-size:.6875rem;font-weight:500;letter-spacing:.15em;color:var(--text-tertiary);margin-bottom:16px}.experiment__header[data-astro-cid-psa4kgms] h1[data-astro-cid-psa4kgms]{margin-top:0;margin-bottom:12px}.experiment__description[data-astro-cid-psa4kgms]{font-size:1.0625rem;color:var(--text-secondary);max-width:600px}.experiment__canvas[data-astro-cid-psa4kgms]{border:1px solid var(--surface-grid-major);background:var(--surface-cream);padding:24px;margin-bottom:48px}.experiment__notes[data-astro-cid-psa4kgms]{margin-top:32px}.encrypt-pg{display:flex;flex-direction:column;gap:20px}.encrypt-pg__ciphers{display:flex;gap:8px;flex-wrap:wrap}.encrypt-pg__cipher-btn{font-family:var(--font-ui);font-size:.8125rem;font-weight:500;padding:6px 16px;border:1px solid var(--surface-grid-major);background:var(--surface-paper);color:var(--text-secondary);cursor:pointer;transition:all .2s ease-out}.encrypt-pg__cipher-btn:hover{border-color:var(--accent);color:var(--accent)}.encrypt-pg__cipher-btn--active{background:var(--accent);color:var(--text-inverse);border-color:var(--accent)}.encrypt-pg__info{background:var(--accent-wash);padding:16px 20px;border-left:2px solid var(--accent)}.encrypt-pg__desc{font-size:.875rem;color:var(--text-body);line-height:1.5;margin:0 0 6px}.encrypt-pg__strength{font-family:var(--font-mono);font-size:.75rem;color:var(--accent);margin:0}.encrypt-pg__controls{display:flex;gap:16px;align-items:center}.encrypt-pg__control{display:flex;align-items:center;gap:10px;flex:1}.encrypt-pg__control label{font-family:var(--font-mono);font-size:.75rem;color:var(--text-secondary);white-space:nowrap}.encrypt-pg__control input[type=range]{flex:1;accent-color:var(--accent)}.encrypt-pg__input{font-family:var(--font-mono);font-size:.8125rem;padding:6px 10px;border:1px solid var(--surface-grid-major);background:var(--surface-paper);color:var(--text-primary);flex:1}.encrypt-pg__input:focus{outline:2px solid var(--accent);outline-offset:1px}.encrypt-pg__panels{display:grid;grid-template-columns:1fr auto 1fr;gap:16px;align-items:start}.encrypt-pg__arrow{font-size:1.25rem;color:var(--accent);padding-top:32px;text-align:center}.encrypt-pg__panel{display:flex;flex-direction:column;gap:8px}.encrypt-pg__panel-label{font-family:var(--font-mono);font-size:.625rem;font-weight:500;text-transform:uppercase;letter-spacing:.1em;color:var(--text-tertiary);margin:0}.encrypt-pg__textarea{font-family:var(--font-mono);font-size:.8125rem;line-height:1.6;padding:12px;border:1px solid var(--surface-grid-major);background:var(--surface-paper);color:var(--text-primary);resize:vertical}.encrypt-pg__textarea:focus{outline:2px solid var(--accent);outline-offset:1px}.encrypt-pg__output{font-family:var(--font-mono);font-size:.8125rem;line-height:1.6;padding:12px;background:var(--surface-recessed);color:var(--text-primary);word-break:break-all;min-height:72px}.encrypt-pg__decrypt-row{display:flex;flex-direction:column;gap:12px}.encrypt-pg__decrypt-btn{font-family:var(--font-mono);font-size:.75rem;color:var(--accent);background:none;border:none;cursor:pointer;text-align:left;padding:0;text-decoration:underline;text-underline-offset:3px}.encrypt-pg__panel--decrypt{border-left:2px solid var(--accent-soft);padding-left:16px}.encrypt-pg__verify{font-family:var(--font-mono);font-size:.6875rem;color:var(--text-tertiary);margin:4px 0 0}.encrypt-pg__freq{background:var(--surface-recessed);padding:16px 20px}.encrypt-pg__freq-bars{display:flex;flex-direction:column;gap:4px;margin-top:12px}.encrypt-pg__freq-bar{display:flex;align-items:center;gap:8px}.encrypt-pg__freq-letter{font-family:var(--font-mono);font-size:.75rem;font-weight:500;color:var(--text-primary);width:14px;text-align:center}.encrypt-pg__freq-track{flex:1;height:8px;background:var(--surface-grid);position:relative}.encrypt-pg__freq-fill{height:100%;background:var(--accent);transition:width .2s ease-out}.encrypt-pg__freq-pct{font-family:var(--font-mono);font-size:.6875rem;color:var(--text-tertiary);width:30px;text-align:right}.encrypt-pg__freq-hint{font-family:var(--font-mono);font-size:.6875rem;color:var(--text-tertiary);margin-top:12px;line-height:1.5}@media(max-width:768px){.encrypt-pg__panels{grid-template-columns:1fr}.encrypt-pg__arrow{padding:0;transform:rotate(90deg)}}
