[hidden]{display:none!important}.lab{padding-top:55px}.lab-heading h1{font-size:64px;letter-spacing:-3px;line-height:1.1;margin:15px 0}.lab-heading h1 span{color:var(--accent)}.lab-heading>p{color:var(--muted);font-size:16px}.privacy{font-size:12px;line-height:1.7;background:#e3ebed;border-left:3px solid var(--accent);padding:13px 17px;margin:25px 0}.controls{display:flex;gap:18px;align-items:end;flex-wrap:wrap}.controls>div{min-width:200px}label{display:block;font-size:12px;font-weight:700;margin-bottom:10px}select,input{font:13px Manrope,sans-serif;padding:12px;background:#fff;color:var(--ink);border:1px solid #bfc9d0;border-radius:3px}select{width:100%}.hint{color:var(--muted);font-size:12px;line-height:1.8}#explanation{min-height:24px;margin:18px 0}.workspace{display:grid;grid-template-columns:1fr 1fr;gap:20px}.panel{padding:18px;background:#fff;border:1px solid var(--line);border-radius:4px}.panel-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.panel-top label{margin:0}textarea{resize:vertical;min-height:230px;width:100%;padding:12px;border:1px solid #d3dadd;background:#f9fafb;color:var(--ink);font:13px/1.8 'IBM Plex Mono',monospace;overflow-wrap:anywhere}textarea:focus,input:focus,select:focus{outline:2px solid var(--accent);outline-offset:2px}.small-button{background:none;border:none;font:12px Manrope,sans-serif;color:var(--accent);cursor:pointer}.small-button:disabled{opacity:.4;cursor:default}.primary,.secondary{font:600 13px Manrope,sans-serif;padding:13px 20px;border-radius:3px;cursor:pointer}.primary{background:var(--ink);color:white;border:1px solid var(--ink)}.secondary{background:transparent;border:1px solid #b6c1c9;color:var(--ink)}.run-row{display:flex;align-items:center;gap:18px;margin:22px 0;flex-wrap:wrap}#message{font-size:13px;color:var(--muted)}.verify{border-top:1px solid var(--line);padding:25px 0}.verify label span{font-weight:400;color:var(--muted);margin-left:8px}.verify input{width:100%}#match{font-size:13px;overflow-wrap:anywhere}.explainer{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;padding:30px 0 55px;border-top:1px solid var(--line)}.explainer h2{font-size:17px;letter-spacing:-.3px}.explainer p{font-size:13px;color:var(--muted);line-height:1.9}@media(max-width:650px){.workspace,.explainer{grid-template-columns:1fr}.lab-heading h1{font-size:48px}.controls>div{flex:1;min-width:140px}.explainer{gap:20px}textarea{min-height:180px}}

.ascii-reference{border-top:1px solid var(--line);margin:10px 0 30px;padding-top:24px}.ascii-reference summary{font-weight:700;cursor:pointer;font-size:14px}.ascii-reference summary span{display:block;font-size:12px;color:var(--muted);font-weight:400;margin:8px 0 0 18px}.ascii-tools{margin:24px 0 15px}.ascii-tools input{width:100%;max-width:450px}.table-scroll{max-height:360px;overflow:auto;background:white;border:1px solid var(--line)}table{width:100%;border-collapse:collapse;text-align:left;font:13px 'IBM Plex Mono',monospace}caption{text-align:left;font:12px/1.8 Manrope,sans-serif;padding:12px;color:var(--muted)}th{position:sticky;top:0;background:#e5ebef;font-size:11px}th,td{padding:10px 16px;border-bottom:1px solid #e3e7e9}tbody tr:hover{background:#eff4f7}

.format-example{font:12px/1.8 ui-monospace,monospace;border-left:2px solid var(--accent);padding:10px 14px;color:var(--muted);background:#eaf0f4;margin:0 0 20px;overflow-wrap:anywhere}.learning-tip{border-top:1px solid var(--line);padding:25px 0 45px}.learning-tip h2{font-size:18px;letter-spacing:-.4px}.learning-tip p{max-width:740px;font-size:13px;line-height:1.9;color:var(--muted)}.learning-tip a{display:inline-block;font-size:12px;margin-top:8px;border-bottom:1px solid var(--line);padding-bottom:5px}.learning-tip code{font:13px ui-monospace,monospace;color:var(--ink);background:#e6edf1;padding:2px 5px}button:focus-visible,summary:focus-visible,.table-scroll:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.skip-link{position:fixed;top:-100px;left:15px;padding:10px;background:var(--ink);color:white;z-index:100}.skip-link:focus{top:15px}.panel{min-width:0}textarea{display:block}.lab-heading{scroll-margin-top:15px}

.byte-converter{border:1px solid var(--line);background:#edf2f5;padding:25px;margin:30px 0 38px;border-radius:5px}.byte-heading{display:flex;align-items:start;justify-content:space-between;gap:20px}.byte-heading h2{font-size:25px;letter-spacing:-.8px;margin:12px 0 0;line-height:1.4}.byte-local{white-space:nowrap;font-size:11px;padding:6px 8px;background:#dce7ec;color:#496475;border-radius:3px}.byte-input-heading{display:flex;gap:18px;align-items:end;margin:22px 0}.byte-input-heading>div{flex:1}.byte-input-heading select{width:100%}.byte-converter textarea{min-height:100px}.byte-converter .run-row{margin:18px 0}.byte-results{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:24px}.byte-card{background:white;border:1px solid #d1dce4;padding:17px;border-radius:3px;min-width:0}.byte-card textarea{min-height:110px}.byte-card .hint{margin-bottom:0}.byte-card .small-button{min-height:36px}.byte-card .panel-top{margin-bottom:8px}.byte-card .panel-top label{font-size:13px}#byte-status{font-size:13px;line-height:1.8;color:var(--accent)}.hash-tool-title{border-top:1px solid var(--line);padding-top:28px;margin-bottom:24px}.hash-tool-title h2{font-size:25px;letter-spacing:-.7px;margin:12px 0}.byte-converter .primary,.byte-converter .secondary{min-height:44px}.byte-converter input,.byte-converter select,.byte-converter button{font-family:system-ui,sans-serif}@media(max-width:650px){.byte-results{grid-template-columns:1fr}.byte-converter{padding:20px}.byte-heading{display:block}.byte-local{display:inline-block;margin-top:12px}.byte-heading h2{font-size:23px}.byte-input-heading{align-items:stretch;flex-direction:column}}

.byte-example-equation{font:13px/2 ui-monospace,monospace;color:#526b7b;overflow-wrap:anywhere;margin:18px 0}.byte-example-equation code{color:var(--ink);font:inherit}.byte-example-equation>span{display:block;font:11px/1.8 system-ui,sans-serif;color:var(--muted);margin-top:3px}
