body{overflow-x:hidden}.shell{position:relative;min-height:100vh;display:flex;flex-direction:column}.bg-helix{position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.28}header.bar{position:relative;z-index:2;display:flex;align-items:center;gap:.8rem;padding:.75rem 1.2rem;border-bottom:1px solid var(--border);background:#0b0d10d1;backdrop-filter:blur(4px)}header.bar .logo{font-weight:700;letter-spacing:.08em;background:linear-gradient(90deg,var(--helix1),var(--helix2));-webkit-background-clip:text;background-clip:text;color:transparent;font-size:1.05rem}header.bar .sub{color:var(--muted);font-size:.78rem}header.bar .spacer{flex:1}header.bar .status-chip{font-size:.7rem;padding:3px 9px;border-radius:99px;border:1px solid var(--border);background:#1a2332}header.bar .status-chip.ok{background:#00c9a72e;color:var(--ok);border-color:transparent}header.bar .status-chip.err{background:#e74c3c2e;color:var(--danger);border-color:transparent}header.bar .status-chip.warn{background:#f7b7312e;color:var(--warn);border-color:transparent}main.panes{position:relative;z-index:1;flex:1;display:grid;grid-template-columns:1fr 1fr;gap:1rem;padding:1rem;min-height:0}@media (max-width: 900px){main.panes{grid-template-columns:1fr}}.pane{background:#101419c7;border:1px solid var(--border);border-radius:14px;padding:1rem 1.1rem;display:flex;flex-direction:column;gap:.75rem;min-height:0;backdrop-filter:blur(2px)}.pane.alice{border-top:2px solid var(--helix1)}.pane.bob{border-top:2px solid var(--helix2)}.pane h2{font-size:.95rem;margin:0;display:flex;align-items:center;gap:.5rem}.pane h2 .dot{width:.6rem;height:.6rem;border-radius:99px;display:inline-block}.pane.alice h2 .dot{background:var(--helix1);box-shadow:0 0 8px var(--helix1)}.pane.bob h2 .dot{background:var(--helix2);box-shadow:0 0 8px var(--helix2)}.row{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}label{font-size:.68rem;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}input[type=text],input[type=password],textarea,select{font-family:var(--font);font-size:.82rem;padding:.45rem .6rem;border-radius:6px;border:1px solid var(--border);background:var(--panel2);color:var(--text);outline:none;width:100%}textarea{resize:vertical}input:focus,textarea:focus{border-color:var(--accent)}button{font-family:inherit;font-size:.78rem;font-weight:600;padding:.5rem .9rem;border:1px solid var(--border);border-radius:7px;cursor:pointer;white-space:nowrap;background:#1f2d44;color:var(--text);transition:background .15s ease}button:hover{background:#2a3b55}button.primary{background:var(--helix1);color:#fff;border-color:transparent}button.primary:hover{background:#746dea}button.ok{background:var(--helix2);color:#031410;border-color:transparent}button.ok:hover{background:#1adbb4}button:disabled{opacity:.45;cursor:not-allowed}.card{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:.75rem .9rem}.dna{font-family:var(--font);font-size:.66rem;line-height:1.45;background:var(--panel2);border:1px solid var(--border);border-radius:6px;padding:.55rem .65rem;word-break:break-all;max-height:6rem;overflow-y:auto;color:var(--helix2);text-shadow:0 0 6px rgba(0,201,167,.22)}.meta{font-size:.68rem;color:var(--muted);margin-top:.3rem}.hint{font-size:.72rem;color:var(--muted)}.keycard{display:flex;flex-direction:column;gap:.4rem}.keycard .key-dna{font-size:.6rem;max-height:3rem;overflow:hidden;color:var(--helix1);text-shadow:0 0 5px rgba(138,130,255,.28)}.dropzone{border:1px dashed var(--border);border-radius:10px;padding:1.1rem 1rem;text-align:center;color:var(--muted);transition:border-color .15s,background .15s;cursor:pointer}.dropzone:hover,.dropzone.drag{border-color:var(--helix1);background:#8a82ff0f;color:var(--text)}.dropzone b{color:var(--helix1)}.file-card{display:flex;flex-direction:column;gap:.4rem}.file-card .filename{font-weight:600;word-break:break-all}.file-card .size{color:var(--muted);font-size:.7rem}.inbox{display:flex;flex-direction:column;gap:.65rem;overflow:auto;min-height:0;flex:1}.inbox:empty:after{content:"Waiting for a secret…";color:var(--muted);font-size:.78rem;display:block;text-align:center;padding:1.5rem}.incoming{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:.75rem .85rem;display:flex;flex-direction:column;gap:.45rem}.incoming .head{display:flex;align-items:center;gap:.5rem;font-size:.72rem;color:var(--muted)}.incoming .head .from{color:var(--text);font-weight:600}.incoming .body{font-family:var(--font);font-size:.85rem;white-space:pre-wrap;word-break:break-word;line-height:1.5}.incoming .body.decrypting{word-break:break-all;letter-spacing:.02em}.incoming .body.phase-cipher{color:var(--helix2);text-shadow:0 0 5px rgba(0,201,167,.35)}.incoming .body.phase-shrink{color:var(--helix1);text-shadow:0 0 7px rgba(138,130,255,.45)}.incoming .body.phase-resolve{word-break:break-word}.incoming .body .resolved{color:var(--text)}.incoming .body .scramble{color:var(--helix1);text-shadow:0 0 6px rgba(138,130,255,.35)}.badge{font-size:.58rem;padding:2px 7px;border-radius:99px;letter-spacing:.04em;text-transform:uppercase;font-weight:700}.badge.ok{background:#00c9a738;color:var(--ok)}.badge.err{background:#e74c3c38;color:var(--danger)}.badge.none{background:#f7b73138;color:var(--warn)}.badge.kind{background:#8a82ff38;color:var(--helix1)}.incoming details summary{cursor:pointer;font-size:.66rem;color:var(--muted)}.incoming details .dna{margin-top:.35rem;max-height:5rem}.download{align-self:flex-start;text-decoration:none;display:inline-flex;align-items:center;gap:.4rem;padding:.4rem .7rem;background:var(--helix2);color:#031410;border-radius:6px;font-weight:700;font-size:.75rem}.download:hover{background:#1adbb4}.secret-reveal{display:flex;align-items:center;gap:.4rem}.secret-reveal .value{font-family:var(--font);font-size:.85rem;background:var(--panel2);padding:.35rem .55rem;border-radius:6px;border:1px solid var(--border);flex:1;word-break:break-all}.secret-reveal .value.masked{letter-spacing:.2em;color:var(--helix1)}.secret-reveal button{padding:.35rem .7rem;font-size:.7rem}.tab-row{display:flex;gap:.3rem;margin-bottom:.4rem}.tab-row button{flex:1;background:var(--panel2);color:var(--muted);border:1px solid var(--border);font-weight:500}.tab-row button.active{background:var(--helix1);color:#fff;border-color:transparent;font-weight:700}footer.foot{padding:.5rem 1.2rem;font-size:.68rem;color:var(--muted);text-align:center;border-top:1px solid var(--border);position:relative;z-index:2}footer.foot code{color:var(--helix1)}@keyframes dnaCaret{50%{opacity:.15}}.incoming .body.phase-resolve .resolved:after{content:"";display:inline-block;width:.45ch;height:1em;vertical-align:-.15em;margin:0 .1ch -.15em 0;background:var(--helix2);animation:dnaCaret .5s steps(2,end) infinite}
