:root{color-scheme:dark;--bg:#0e1522;--panel:#161f2d;--panel-dark:#121b29;--line:#2a3544;--muted:#90a0b3;--text:#f2f6fb;--accent:#b5f274;--accent-ink:#18251a;--error:#ff9b9b;--round:20px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.48}body::before{content:"";pointer-events:none;position:absolute;top:0;left:0;right:0;height:700px;background:radial-gradient(ellipse 50% 25% at 79% 18%,rgba(84,131,105,.12),transparent 80%)}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}a{color:inherit}button:focus-visible,input:focus-visible,a:focus-visible{outline:3px solid var(--accent);outline-offset:4px}.page{position:relative;max-width:1232px;margin:auto;padding:0 32px}.site-header{height:108px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #26303e}.brand{text-decoration:none;display:flex;align-items:center;gap:12px;font-size:24px;font-weight:760;letter-spacing:-1.1px}.brand-mark{height:39px;width:39px;display:grid;place-items:center;color:#14221c;background:var(--accent);border-radius:12px}.brand-dot{color:var(--accent)}.header-status{display:flex;align-items:center;gap:10px;border:1px solid #35453c;color:#c5dfbd;font-size:12px;padding:9px 13px;border-radius:50px}.status-dot{width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px rgba(181,242,116,.08)}.intro{padding:72px 0 45px;max-width:710px}.eyebrow{display:flex;align-items:center;gap:12px;text-transform:uppercase;letter-spacing:2px;font-weight:700;font-size:11px;color:var(--accent)}.eyebrow-line{width:27px;height:1px;background:var(--accent)}h1{font-size:clamp(41px,5.4vw,72px);line-height:1.11;letter-spacing:-3.7px;margin:23px 0 20px;font-weight:760}h1 span{color:var(--accent)}.intro p{max-width:595px;font-size:16px;line-height:1.75;color:var(--muted);margin:0}.workspace{display:grid;grid-template-columns:minmax(340px,.93fr) minmax(390px,1.07fr);gap:20px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--round);padding:30px;min-width:0}.panel-head{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:23px;margin-bottom:27px;gap:12px}.panel-head h2{font-size:21px;font-weight:700;letter-spacing:-.55px;margin:0}.panel-kicker{font-size:11px;text-transform:uppercase;letter-spacing:1.1px;color:#77889b;white-space:nowrap}.field{margin-bottom:25px}.field-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:15px;gap:12px}.field label,.charset-field legend{font-size:14px;font-weight:640}.field-hint{color:#8192a7;font-size:12px}.range-row{display:flex;align-items:center;gap:20px}.range-row input[type=range]{width:100%;accent-color:var(--accent);cursor:pointer}.number-input,.text-input{color:var(--text);border:1px solid #344254;background:#0e1725;border-radius:10px;outline:0}.number-input{width:79px;height:43px;text-align:center;font-size:16px;font-weight:700}.number-input::-webkit-inner-spin-button{opacity:.5}.range-labels{display:flex;justify-content:space-between;padding-right:99px;margin-top:1px;font-size:11px;color:#63758a}.charset-field{border:0;padding:0;min-width:0}.charset-field legend{padding:0 0 13px}.option-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px}.option{display:flex;align-items:center;gap:10px;position:relative;min-width:0;padding:13px 11px;background:#121b29;border:1px solid #324051;border-radius:10px;cursor:pointer;user-select:none}.option:has(input:checked){border-color:#738d69;background:#1b2b2a}.option input{position:absolute;opacity:0;width:1px;height:1px}.option:has(input:focus-visible){outline:3px solid var(--accent);outline-offset:3px}.check-ui{height:17px;width:17px;flex:none;border-radius:5px;border:1px solid #5e7083;background:#0e1725;display:grid;place-items:center}.option input:checked + .check-ui{background:var(--accent);border-color:var(--accent)}.option input:checked + .check-ui::before{content:"";width:8px;height:5px;border-left:2px solid #183020;border-bottom:2px solid #183020;transform:translateY(-1px) rotate(-45deg)}.option-name{font-size:12px;font-weight:630;white-space:nowrap}.option-sample{color:#8899ac;font-size:10px;white-space:nowrap;margin-left:auto}.advanced-field{border-top:1px solid var(--line);padding-top:19px}.toggle-row{display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;margin-bottom:17px}.toggle-copy{display:flex;flex-direction:column;gap:3px}.toggle-copy strong{font-size:13px;font-weight:640}.toggle-copy small{font-size:11px;color:#8395aa}.switch{position:relative;display:inline-block;flex:none}.switch input{position:absolute;opacity:0;width:1px;height:1px}.switch-track{display:block;width:42px;height:24px;border-radius:18px;background:#4c5a69;position:relative;transition:background .15s}.switch-track::after{content:"";position:absolute;left:3px;top:3px;width:18px;height:18px;border-radius:50%;background:#f3f8fd;transition:transform .15s}.switch input:checked + .switch-track{background:#8fcc69}.switch input:checked + .switch-track::after{transform:translateX(18px);background:#14251a}.switch input:focus-visible + .switch-track{outline:3px solid var(--accent);outline-offset:3px}.small-label{display:block;color:#bbc8d7;font-size:12px!important;margin-bottom:9px}.text-input{height:43px;padding:0 13px;width:100%;font-size:13px}.text-input::placeholder{color:#627589}.count-field .number-input{width:96px}.primary-button{border:0;width:100%;height:54px;border-radius:11px;background:var(--accent);color:var(--accent-ink);font-weight:760;font-size:14px;display:flex;align-items:center;justify-content:center;gap:16px;transition:background .15s,transform .15s}.primary-button:hover{background:#c7ff88}.primary-button:active{transform:translateY(1px)}.form-error{margin:0 0 14px;color:var(--error);font-size:12px}.results-panel{display:flex;flex-direction:column}.results-heading{display:flex;justify-content:space-between;align-items:center;margin-top:3px}.result-caption,.list-heading{font-size:11px;letter-spacing:1.25px;font-weight:700;color:#8b9cae}.strength-row{display:flex;align-items:baseline;gap:13px;margin-top:9px}.strength-row strong{font-size:22px;letter-spacing:-.5px}.strength-row span{font-size:12px;color:#94a8bb}.shield-icon{color:var(--accent);width:43px;height:43px;border:1px solid #344a3a;border-radius:13px;display:grid;place-items:center}.strength-track{height:6px;background:#2c3947;border-radius:100px;margin:20px 0 32px;overflow:hidden}.strength-track>span{display:block;height:100%;width:0;background:var(--accent);border-radius:100px;transition:width .2s}.list-heading{display:flex;justify-content:space-between;gap:12px;margin-bottom:13px}.password-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px;min-height:220px}.password-row{display:flex;align-items:center;gap:9px;min-height:54px;padding:7px 8px 7px 13px;border:1px solid #2e3b4b;border-radius:10px;background:#101927}.password-index{color:#6f8599;font-size:10px;min-width:22px}.password-value{font-size:13px;line-height:1.45;letter-spacing:.3px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace;overflow-wrap:anywhere;word-break:break-all;flex:1;user-select:all}.copy-one{border:1px solid #34465a;min-width:35px;height:35px;display:grid;place-items:center;background:#1d2a3b;color:#b6c8d9;border-radius:8px}.copy-one:hover{color:var(--accent);border-color:var(--accent)}.results-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:22px 0 26px;flex-wrap:wrap}.secondary-button{height:42px;border:1px solid #516e53;color:var(--accent);background:#203226;border-radius:9px;font-size:12px;font-weight:700;padding:0 19px}.secondary-button:hover:not(:disabled){background:#2c422f}.text-button{color:#abc1d2;border:0;background:transparent;font-weight:660;font-size:12px;display:flex;align-items:center;gap:8px;padding:10px 0}.text-button:hover:not(:disabled){color:var(--accent)}.privacy-note{margin-top:auto;padding:18px 16px;background:#1c2a2a;border:1px solid #2d4640;border-radius:12px;display:flex;align-items:flex-start;gap:12px;color:#a7bcaf;font-size:11px;line-height:1.65}.privacy-note svg{flex:none;color:var(--accent);margin-top:1px}.benefits{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;padding:59px 0 66px;border-bottom:1px solid #283441}.benefit-index{color:var(--accent);font:700 11px ui-monospace,monospace}.benefit h3{font-size:15px;letter-spacing:-.2px;margin:13px 0 9px}.benefit p{font-size:12px;line-height:1.7;color:#92a3b5;margin:0}.benefit code{font-size:11px}.footer{color:#718598;min-height:98px;display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:11px}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:920px){.workspace{grid-template-columns:1fr}.intro{padding-top:55px}.benefits{gap:18px}.footer{align-items:flex-start;flex-direction:column;justify-content:center;gap:7px}}@media(max-width:600px){.page{padding:0 17px}.site-header{height:79px}.header-status{font-size:10px;padding:7px 9px}.brand{font-size:21px}.brand-mark{height:34px;width:34px}.intro{padding:43px 0 33px}.intro h1{letter-spacing:-2px;margin:20px 0 14px}.intro p{font-size:14px}.panel{padding:20px;border-radius:15px}.panel-head{margin-bottom:24px;padding-bottom:19px}.panel-kicker{font-size:10px}.option-grid{gap:8px}.option{padding:11px 8px;gap:7px}.option-name{font-size:11px}.option-sample{font-size:9px}.benefits{grid-template-columns:1fr;gap:26px;padding:42px 0}.results-actions{align-items:stretch}.footer{padding:26px 0}}


/* Compact desktop layout: core tools fit in a short browser viewport. */
@media (min-width: 921px) {
  .page {
    min-height: 100vh;
    min-height: 100dvh;
    max-width: 1300px;
    display: flex;
    flex-direction: column;
  }
  .site-header { height: 54px; flex: none; }
  .brand { font-size: 19px; letter-spacing: -.65px; gap: 9px; }
  .brand-mark { height: 30px; width: 30px; border-radius: 9px; }
  .brand-mark svg { width: 17px; height: 17px; }
  .header-status { padding: 5px 10px; font-size: 10px; gap: 8px; }
  .intro { padding: 13px 0 15px; max-width: none; }
  .eyebrow { font-size: 9px; letter-spacing: 1.1px; gap: 8px; }
  .eyebrow-line { width: 17px; }
  .intro h1 { font-size: 32px; line-height: 1.05; letter-spacing: -1.25px; margin: 7px 0 7px; }
  .intro p { max-width: 100%; font-size: 12.5px; line-height: 1.35; }
  .workspace { grid-template-columns: minmax(380px, .93fr) minmax(430px, 1.07fr); gap: 14px; }
  .panel { padding: 18px 22px; border-radius: 14px; }
  .panel-head { padding-bottom: 9px; margin-bottom: 12px; }
  .panel-head h2 { font-size: 17px; letter-spacing: -.3px; }
  .panel-kicker { font-size: 10px; }
  .field { margin-bottom: 12px; }
  .field-top { margin-bottom: 6px; }
  .field label, .charset-field legend { font-size: 12.5px; }
  .field-hint { font-size: 11px; }
  .range-row { gap: 14px; }
  .number-input { height: 34px; width: 66px; font-size: 14px; }
  .range-labels { padding-right: 81px; font-size: 10px; }
  .charset-field legend { padding-bottom: 7px; }
  .option-grid { gap: 7px; }
  .option { padding: 7px 10px; gap: 8px; border-radius: 8px; }
  .check-ui { width: 15px; height: 15px; }
  .option-name { font-size: 11.5px; }
  .option-sample { font-size: 10px; }
  .advanced-field { padding-top: 12px; }
  .toggle-row { margin-bottom: 8px; }
  .toggle-copy { gap: 0; }
  .toggle-copy strong { font-size: 12px; }
  .toggle-copy small { font-size: 10px; }
  .switch-track { width: 37px; height: 21px; }
  .switch-track::after { height: 15px; width: 15px; }
  .switch input:checked + .switch-track::after { transform: translateX(16px); }
  .small-label { font-size: 11px !important; margin-bottom: 5px; }
  .text-input { height: 34px; font-size: 12px; }
  .count-field .number-input { width: 76px; }
  .primary-button { height: 42px; border-radius: 9px; font-size: 12.5px; }
  .results-heading { margin-top: 0; }
  .result-caption, .list-heading { font-size: 10px; letter-spacing: 1px; }
  .strength-row { margin-top: 3px; }
  .strength-row strong { font-size: 18px; }
  .strength-row span { font-size: 11px; }
  .shield-icon { width: 35px; height: 35px; border-radius: 9px; }
  .shield-icon svg { width: 20px; height: 20px; }
  .strength-track { margin: 9px 0 14px; height: 5px; }
  .list-heading { margin-bottom: 8px; }
  .password-list { min-height: 0; height: 223px; max-height: 223px; overflow-y: auto; gap: 5px; padding-right: 3px; scrollbar-width: thin; scrollbar-color: #4a5b66 transparent; }
  .password-row { min-height: 40px; padding: 4px 7px 4px 10px; border-radius: 8px; }
  .password-value { font-size: 12px; }
  .copy-one { min-width: 30px; height: 30px; }
  .results-actions { margin: 11px 0 12px; }
  .secondary-button { height: 35px; }
  .privacy-note { padding: 9px 11px; gap: 9px; border-radius: 9px; font-size: 10.5px; line-height: 1.4; }
  .privacy-note svg { width: 15px; height: 15px; }
  .benefits { gap: 16px; padding: 13px 0; }
  .benefit { display: flex; align-items: center; gap: 8px; }
  .benefit h3 { font-size: 11px; line-height: 1.3; margin: 0; }
  .benefit p { display: none; }
  .benefit-index { font-size: 10px; }
  .footer { margin-top: auto; min-height: 42px; font-size: 10.5px; }
}

/* On shorter desktop viewports, prioritize the working area over marketing copy. */
@media (min-width: 921px) and (max-height: 850px) {
  .benefits { display: none; }
  .intro { padding-top: 10px; padding-bottom: 12px; }
  .site-header { height: 49px; }
  .footer { min-height: 34px; }
}

@media (max-width: 920px) {
  .page { min-height: 100vh; min-height: 100dvh; display: flex; flex-direction: column; }
  .footer { margin-top: auto; }
}

/* The intro is modest on phones as well, without reducing touch targets. */
@media (max-width: 600px) {
  .site-header { height: 65px; }
  .intro { padding: 25px 0 22px; }
  .eyebrow { font-size: 9px; letter-spacing: 1px; gap: 8px; }
  .eyebrow-line { width: 18px; flex: none; }
  .intro h1 { font-size: clamp(28px, 7.2vw, 36px); line-height: 1.09; letter-spacing: -1.15px; margin: 10px 0 10px; }
  .intro p { font-size: 12.5px; line-height: 1.5; }
}
