/* pgp123 v0.1.0 — no external fonts or assets. */
:root{color-scheme:dark;--bg:#101215;--panel:#181b20;--inset:#121519;--line:#2b2e34;--line-soft:#23262c;--ink:#f4f1ed;--muted:#acaeb5;--dim:#7f848d;--accent:#f8a06a;--accent-ink:#21150d;--green:#a3d8ae;--error:#ffaaa7;--radius:16px;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:14px}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 77% 6%,#24201e 0,transparent 33%),var(--bg);color:var(--ink);line-height:1.5}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.42}a{color:inherit;text-decoration:none}a:hover{color:var(--accent)}button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:4px}button{transition:background .15s,border-color .15s,color .15s}textarea,input,select{outline:none}textarea:focus,input:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 3px #f8a06a12}::selection{background:#f8a06a44;color:#fff}[hidden]{display:none!important}.shell{width:min(1180px,calc(100% - 64px));margin:auto}.topbar{height:100px;border-bottom:1px solid var(--line-soft);display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{display:flex;align-items:center;gap:11px;font-size:28px;font-weight:750;letter-spacing:-1.2px}.brand-digits{color:var(--accent)}.brand-icon{display:grid;place-items:center;background:var(--accent);color:var(--accent-ink);width:37px;height:39px;border-radius:11px}.brand-icon .icon{width:22px;height:22px}.icon{width:19px;height:19px;flex:none;vertical-align:middle}.topbar-right{display:flex;align-items:center;gap:32px}.byline{font-size:10px;color:var(--dim);letter-spacing:1.3px}.byline a{color:#d6d4d2;margin-left:5px;font-weight:650}.quiet-button,.text-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:0;background:none;padding:8px 0;color:var(--muted);font-size:12px}.quiet-button{border-left:1px solid var(--line);padding-left:24px}.quiet-button .icon{width:15px}.quiet-button:hover,.text-button:hover{color:var(--accent)}.hero{display:flex;justify-content:space-between;align-items:center;min-height:300px;padding:35px 10px 35px 0;gap:30px}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:650;color:var(--accent);display:flex;align-items:center;gap:9px;margin:0 0 15px}.orange-dot{width:6px;height:6px;border-radius:50%;background:var(--accent)}h1{font-size:clamp(40px,4.6vw,61px);letter-spacing:-2.7px;line-height:1.05;margin:0 0 19px;font-weight:650}h1>span{color:var(--accent)}.hero-subtitle{color:var(--muted);font-size:14px;line-height:1.65;margin:0}.hero-art{width:370px;height:225px;position:relative;display:grid;place-items:center;margin-right:25px}.orbit{position:absolute;border:1px solid #3b332b;border-radius:50%;transform:rotate(-20deg)}.orbit-outer{width:314px;height:181px}.orbit-inner{width:227px;height:227px;border-style:dashed;border-color:#4a39304d;transform:rotate(25deg)}.hero-lock{width:92px;height:102px;border:1px solid #70513d;background:linear-gradient(145deg,#34291f,#201d1a);border-radius:27px;display:grid;place-items:center;transform:rotate(-9deg);box-shadow:0 20px 70px #f8995e0d}.hero-lock .icon{width:43px;height:43px;color:var(--accent);stroke-width:1.2}.art-label{position:absolute;font:9px ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:1.5px;color:#aa9988;background:var(--bg);padding:7px 10px;border:1px solid #3e342d;border-radius:6px}.label-left{left:0;top:40px;transform:rotate(-7deg)}.label-right{right:-6px;bottom:54px;transform:rotate(5deg)}.art-tag{position:absolute;bottom:7px;font:12px ui-monospace,Consolas,monospace;letter-spacing:.8px;color:var(--muted)}.art-tag span{color:var(--accent);padding:0 15px}.workspace{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--panel);box-shadow:0 25px 85px #0002}.workspace-toolbar{display:flex;align-items:center;justify-content:space-between;padding:0 26px;border-bottom:1px solid var(--line);min-height:70px;gap:16px;background:#1c1f24}.tabs{align-self:stretch;display:flex;gap:9px}.tab{border:0;border-bottom:2px solid transparent;color:var(--muted);background:none;display:flex;align-items:center;gap:8px;padding:0 17px;font-size:13px;font-weight:600}.tab.active{color:var(--accent);border-bottom-color:var(--accent)}.tab:hover{color:var(--ink)}.tab-number{font:9px ui-monospace,monospace;opacity:.5;margin-left:7px}.engine-status{font-size:10px;color:var(--muted);display:flex;align-items:center;gap:7px;white-space:nowrap}.status-dot{height:6px;width:6px;background:var(--dim);border-radius:50%}.engine-status.ready .status-dot{background:var(--green);box-shadow:0 0 0 4px #a3d8ae08}.engine-status.error .status-dot{background:var(--error)}.panel{padding:27px}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:23px}.panel-heading h2{margin:0 0 4px;font-size:20px;letter-spacing:-.45px;font-weight:600}.panel-heading p{margin:0;color:var(--muted);font-size:12px}.mode-pill{font:9px ui-monospace,Consolas,monospace;letter-spacing:.6px;color:var(--dim);padding:6px 8px;border:1px solid var(--line);border-radius:5px}.tool-grid{display:grid;grid-template-columns:1fr 1fr;gap:21px}.input-card{margin:0;min-width:0}.form-fields{padding:0;border:0;margin:0;min-width:0}.form-fields:disabled{opacity:.62}.form-fields>label{margin-top:16px}.form-fields>label:first-child{margin-top:0}label{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:560;color:#dddcd9;margin-bottom:9px}.field-meta{margin-left:auto;font:9px ui-monospace,Consolas,monospace;color:var(--dim);letter-spacing:.4px}.sensitive-label{color:var(--accent);font:9px ui-monospace,Consolas,monospace;letter-spacing:.5px}.step-badge{font:10px ui-monospace,Consolas,monospace;display:inline-grid;place-items:center;width:19px;height:19px;border:1px solid #3a3d43;border-radius:5px;color:#bdc0c6;flex:none}.mono{font-family:ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace;font-size:11px;line-height:1.8}textarea,input,select{display:block;width:100%;color:var(--ink);background:var(--inset);border:1px solid #34373e;border-radius:8px;padding:13px 14px;caret-color:var(--accent);transition:border-color .15s,box-shadow .15s}textarea{resize:vertical;min-height:84px}textarea::placeholder,input::placeholder{color:#7f858e;opacity:1}input{height:44px}select{padding:11px 14px;height:44px}.key-input{height:126px}.message-input{height:147px;font-size:13px;line-height:1.6}.compact-input{height:102px}.action-row{display:flex;align-items:center;gap:15px;margin-top:18px;flex-wrap:wrap}.primary{border:1px solid var(--accent);background:var(--accent);color:var(--accent-ink);border-radius:8px;display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:12px 17px;font-size:12px;font-weight:700;min-height:45px}.primary:hover:not(:disabled){background:#ffb17f;border-color:#ffb17f}.primary .icon:last-child{width:16px;margin-left:8px}.primary .icon:first-child{width:16px}.action-note{font-size:10px;color:var(--dim)}.secondary{border:1px solid #41454c;background:#24282f;color:#efebe7;border-radius:7px;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:8px 11px;font-size:11px;min-height:36px}.secondary:hover:not(:disabled){border-color:#82858a;background:#2d323a}.secondary .icon,.text-button .icon{width:14px;height:14px}.output-card{min-width:0;border:1px solid #35383f;border-radius:10px;background:linear-gradient(130deg,#1e2228,#1a1d22);display:flex;flex-direction:column;padding:18px;min-height:405px}.output-heading{display:flex;align-items:center;justify-content:space-between;gap:8px}.output-heading h3{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:560;margin:0}.output-tag{font:8px ui-monospace,Consolas,monospace;letter-spacing:.6px;color:var(--dim)}.private-tag{color:var(--accent)}.empty-output{flex:1;min-height:272px;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;padding:25px 5px}.empty-icon{color:var(--accent);width:53px;height:57px;border:1px solid #4b3f35;background:#2c261f77;border-radius:15px;display:grid;place-items:center;margin-bottom:17px}.empty-icon .icon{width:24px;height:24px;stroke-width:1.4}.empty-output h4{font-size:15px;font-weight:550;margin:0 0 8px;letter-spacing:-.15px}.empty-output p{font-size:11px;line-height:1.8;color:var(--dim);margin:0}.empty-output p strong{color:var(--muted);font-weight:500}.ghost-armor{color:#666c76;font:9px/2 ui-monospace,Consolas,monospace;letter-spacing:.5px;margin-top:23px}.output-actions{display:flex;align-items:center;gap:13px;border-top:1px solid var(--line);padding-top:13px;margin-top:auto;flex-wrap:wrap}.small-note{font-size:9px;color:var(--dim);max-width:210px}.output-content{flex:1;min-width:0;padding-top:14px}.result-text{height:236px;font-size:11px;border-color:#30343b;background:#121519;resize:vertical}.plaintext{font-size:13px;line-height:1.7;height:280px}.fingerprint-block{padding:12px 0;color:var(--dim);overflow-wrap:anywhere}.fingerprint-block>span{font:8px ui-monospace,Consolas,monospace;letter-spacing:.8px;display:block;margin-bottom:6px}.fingerprint-block code{font-size:10px;letter-spacing:.6px;color:var(--green);line-height:1.8;display:block}.fingerprint-block p{font-size:10px;margin:5px 0 0;line-height:1.5}.password-wrap{position:relative}.password-wrap input{padding-right:60px}.show-password{position:absolute;right:11px;top:0;bottom:0;background:none;border:0;color:var(--muted);font-size:10px}.show-password:hover{color:var(--accent)}.advanced{margin-top:15px;font-size:11px;color:var(--muted)}summary{cursor:pointer}.advanced summary{font-size:11px;color:#c6c5c4}.advanced summary>span{color:var(--dim);font-size:10px;margin-left:6px}.advanced[open] summary{margin-bottom:13px}.advanced label{margin-top:13px}.advanced p{font-size:10px;line-height:1.6;color:var(--dim)}.field-help{font-size:10px;color:var(--dim);margin:7px 0 12px;line-height:1.6}.keygen-grid{grid-template-columns:.87fr 1.13fr}.keys-output .empty-output{min-height:375px}.mini-note{font-size:10px;color:var(--dim);margin-top:25px}.key-result-section+.key-result-section{border-top:1px solid var(--line);margin-top:16px;padding-top:15px}.key-result-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:9px}.key-result-title label{margin:0}.public-tag{color:var(--green);font:9px ui-monospace,Consolas,monospace}.key-output{height:105px;font-size:10px}.key-actions{display:flex;align-items:center;gap:14px;margin-top:9px;flex-wrap:wrap}.key-actions .text-button{font-size:10px}.key-actions .secondary{font-size:10px;min-height:33px}.private-warning{font-size:10px;color:var(--accent);margin:0 0 8px}.private-cover{border:1px dashed #514235;border-radius:7px;min-height:73px;display:flex;align-items:center;justify-content:center;gap:10px;color:var(--muted);font-size:11px;background:#29231d40}.private-cover .icon{color:var(--accent);width:17px}.revocation{margin-top:0;border-top:1px solid var(--line);padding-top:10px}.save-note{font-size:11px;color:var(--accent);line-height:1.6;padding-top:11px;border-top:1px solid var(--line);margin:15px 0 0}.signature-status{font-size:11px;color:var(--accent);border-left:2px solid var(--accent);padding:5px 10px;line-height:1.6}.signature-status.verified{color:var(--green);border-color:var(--green)}.workspace-footer{padding:13px 27px;border-top:1px solid var(--line);display:flex;justify-content:space-between;font-size:10px;color:var(--dim);gap:12px}.workspace-footer>span:first-child{display:flex;align-items:center;gap:7px}.workspace-footer .icon{width:14px;height:14px;color:#a8b3a4}.under-tool{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:12px 0 7px;font-size:10px;color:var(--dim)}.under-tool p{margin:0}.under-tool strong{color:var(--muted);font-weight:500}.under-tool .text-button{font-size:10px;flex:none}.safety-note{font-size:11px;color:var(--dim);margin:11px 0 29px}.safety-note summary{display:inline-block;text-decoration:underline;text-underline-offset:3px}.safety-note>div{border:1px solid var(--line);border-radius:9px;padding:7px 16px;margin-top:12px;line-height:1.8}.safety-note a{color:var(--muted);text-decoration:underline}.page-footer{min-height:77px;border-top:1px solid var(--line-soft);display:flex;justify-content:space-between;align-items:center;color:var(--dim);font-size:10px;gap:18px}.page-footer>span:first-child{font-size:18px;font-weight:650;letter-spacing:-.5px;color:#d0cecc}.page-footer>span:first-child>span:first-child{color:var(--accent)}.footer-version{font-size:9px;font-weight:400;color:var(--dim);margin-left:10px;letter-spacing:0}.page-footer .icon{width:12px;margin-left:5px}.operation-status{margin-top:17px;border-radius:7px;border:1px solid #3d443b;background:#202720;padding:11px 14px;font-size:12px;color:var(--green);display:flex;align-items:center;justify-content:space-between;gap:15px}.operation-status.error,.notice.error{border-color:#634041;color:var(--error);background:#342326}.operation-status.busy{color:var(--accent);background:#2c261f;border-color:#584333}.operation-status .cancel-operation{color:inherit;font-size:11px;flex:none;background:none;border:1px solid currentColor;border-radius:5px;padding:4px 8px}.notice{border-radius:9px;padding:14px 18px;margin-bottom:20px;font-size:12px;border:1px solid #564437;line-height:1.7}.notice.warning{color:var(--accent);background:#2c251f}.notice a{text-decoration:underline;font-weight:600;margin-left:8px}.notice .icon{width:13px}.toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);border:1px solid #55544e;background:#2f302c;color:var(--ink);padding:12px 19px;border-radius:9px;box-shadow:0 10px 50px #0007;font-size:12px;max-width:90vw;z-index:20;text-align:center}.confirm-dialog{padding:29px;border:1px solid #51453b;background:#1d2025;color:var(--ink);border-radius:16px;max-width:440px;width:calc(100% - 40px);box-shadow:0 30px 100px #0008}.confirm-dialog::backdrop{background:#050608c9;backdrop-filter:blur(4px)}.confirm-dialog h2{font-size:21px;line-height:1.3;margin:15px 0 12px}.confirm-dialog p{font-size:13px;color:var(--muted);line-height:1.7;margin:0 0 22px}.dialog-icon{color:var(--accent)}.dialog-icon .icon{width:30px;height:30px}.dialog-actions{display:flex;justify-content:flex-end;gap:10px}.dialog-actions .primary{font-size:11px;min-height:38px;padding:9px 13px}.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}.setup-shell{max-width:760px;margin:60px auto;padding:0 25px}.setup-card{margin-top:30px;padding:30px;background:var(--panel);border:1px solid var(--line);border-radius:16px}.setup-card h1{font-size:34px;letter-spacing:-1px;margin-bottom:18px}.setup-card p,.setup-card li{font-size:13px;color:var(--muted);line-height:1.8}.setup-card code{font-size:12px;color:var(--accent);overflow-wrap:anywhere}.setup-card form{margin-top:22px}.setup-card .notice{margin-top:20px}.setup-card a:not(.primary){text-decoration:underline}.setup-card .primary{margin-top:7px}
@media(min-width:1450px){.shell{width:1180px}.hero{min-height:312px}}
@media(max-width:980px){.shell{width:calc(100% - 40px)}.byline{display:none}.hero-art{width:300px;margin-right:0}.orbit-outer{width:270px}.label-left{left:0}.label-right{right:0}.mode-pill{display:none}.panel{padding:22px}.workspace-toolbar{padding:0 16px}.tab{padding:0 12px}.tab-number{display:none}.tool-grid{gap:17px}.keygen-grid{grid-template-columns:1fr 1fr}.output-tag{font-size:7px}.output-card{padding:15px}.field-meta{font-size:8px}.action-note{display:none}.key-actions{gap:10px}.engine-status{font-size:9px}}
@media(max-width:700px){.shell{width:calc(100% - 30px)}.topbar{height:78px}.brand{font-size:26px}.brand-icon{height:35px;width:34px}.topbar-right{gap:0}.quiet-button{border:0;padding:7px 0;font-size:10px;gap:4px}.hero{min-height:248px;padding:28px 0}.hero-art{display:none}h1{font-size:48px;letter-spacing:-2px}.eyebrow{font-size:9px;letter-spacing:1.4px}.hero-subtitle{font-size:12px}.workspace-toolbar{padding:0 12px;min-height:92px;flex-wrap:wrap;gap:0;justify-content:center}.tabs{height:53px;width:100%;gap:0;justify-content:space-between}.tab{flex:1;padding:0 10px;font-size:12px;gap:6px;justify-content:center}.tab .icon{width:16px}.engine-status{height:31px;font-size:9px;margin:0 auto 7px}.panel{padding:20px 16px}.panel-heading{margin-bottom:22px}.panel-heading h2{font-size:18px}.panel-heading p{font-size:11px;line-height:1.7}.tool-grid,.keygen-grid{grid-template-columns:1fr;gap:24px}.field-meta{font-size:8px}.output-card{min-height:340px;padding:15px}.empty-output{min-height:246px}.output-tag{font-size:7px}.output-actions{gap:10px}.small-note{font-size:8px;max-width:167px}.primary{width:100%;font-size:12px;justify-content:space-between}.primary .icon:last-child{margin-left:0}.action-row{margin-top:16px}.action-note{display:none}input,select,.password-wrap input{font-size:16px}textarea{font-size:16px}.mono{font-size:12px}.message-input{font-size:16px}.key-input{height:137px}.workspace-footer{padding:12px 16px;font-size:9px}.workspace-footer>span:last-child{display:none}.under-tool{flex-wrap:wrap;gap:3px;margin-top:15px}.under-tool p{font-size:9px;line-height:1.8}.under-tool .text-button{margin-left:auto}.safety-note{font-size:10px;margin-top:4px;margin-bottom:22px}.page-footer{font-size:9px;min-height:72px}.page-footer>span:nth-child(2){display:none}.key-output{font-size:11px}.keys-output .empty-output{min-height:290px}.key-actions{gap:10px}.key-actions .text-button{font-size:10px}.notice{font-size:11px;padding:12px}.setup-shell{margin:30px auto}.setup-card{padding:23px}.dialog-actions .primary{width:auto}.result-text{font-size:12px}.plaintext{font-size:15px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

/* v0.2.0: readable clear-signing and four-tab navigation. */
.sign-note{height:174px}.sign-notice{display:flex;align-items:flex-start;gap:9px;margin:12px 0 0;padding:11px 12px;border:1px solid #514131;border-radius:8px;background:#2b241d;color:var(--muted);font-size:10px;line-height:1.65}.sign-notice>.icon{color:var(--accent);width:16px;height:16px;margin-top:2px}.sign-notice strong{color:var(--accent);font-weight:600}.signed-text{height:357px;line-height:1.8}.cleartext-note{font-size:10px;line-height:1.65;color:var(--dim);margin:15px 0 0}.key-actions{flex-wrap:wrap}
@media(max-width:700px){.tabs .tab{padding:0 6px;gap:5px;font-size:11px}.tabs .tab .icon{width:14px;height:14px}.signed-text{height:305px}.cleartext-note{font-size:9px}.sign-notice{font-size:10px}}
@media(max-width:380px){.tabs .tab{padding:0 4px;gap:4px;font-size:10px}.tabs .tab .icon{width:12px;height:12px}.workspace-toolbar{padding:0 8px}.ghost-armor{font-size:8px;letter-spacing:0}.sign-grid .output-tag{font-size:6px}.sign-grid .small-note{max-width:none}}
