:root{--purple-950:#2d174f;--purple-900:#3e2467;--purple-700:#5d35cc;--purple-600:#6f4be8;--purple-500:#815ff0;--purple-300:#bfaef8;--purple-100:#eee9ff;--purple-50:#f7f4ff;--ink:#211d29;--muted:#746d7b;--border:#e7e1ed;--shadow:0 14px 46px rgba(48,27,91,.07);--shadow-hover:0 13px 32px rgba(65,36,126,.09)}
*{box-sizing:border-box}html,body,#root{margin:0;padding:0;width:100%;max-width:none}body{overflow-x:hidden;background:#faf9ff;color:var(--ink);font-family:"Open Sans",Arial,sans-serif}.password-app{min-height:640px;background:linear-gradient(#fff 0%,#faf9ff 30%,#faf9ff 100%);padding:0 20px 78px}.hero-section{max-width:980px;margin:0 auto;padding:58px 0 30px;text-align:center}.hero-eyebrow,.mini-label,.section-label{display:inline-flex;align-items:center;color:var(--purple-700);font-size:10.5px;font-weight:850;letter-spacing:.09em}.hero-eyebrow{padding:6px 9px;background:var(--purple-50);border:1px solid #e7dffa;border-radius:999px}.hero-section h1{margin:13px 0 13px;color:#1e1828;font-size:46px;line-height:1.08;letter-spacing:-1.7px;font-weight:800}.hero-subtitle{max-width:760px;margin:0 auto;color:#686170;font-size:16px;line-height:1.65}.trust-row{margin:17px auto 0;display:flex;justify-content:center;flex-wrap:wrap;gap:9px 15px;color:#837b89;font-size:12px}.trust-row span{display:inline-flex;align-items:center;gap:6px}.trust-row span::first-letter{color:var(--purple-500)}
.tool-shell{width:min(980px,100%);margin:0 auto;padding:22px;background:#fff;border:1px solid var(--border);border-radius:20px;box-shadow:var(--shadow)}.tool-topbar{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding-bottom:17px;border-bottom:1px solid #eee9f2}.tool-topbar h2{margin:5px 0 0;color:var(--purple-950);font-size:22px;line-height:1.25}.mode-tabs{display:flex;min-width:230px;padding:4px;background:#f3f0f8;border-radius:11px}.mode-tab{flex:1;min-height:38px;border:0;border-radius:8px;background:transparent;color:#716a79;font-weight:800;cursor:pointer}.mode-tab.active{background:#fff;color:var(--purple-700);box-shadow:0 2px 8px rgba(42,25,75,.09)}
.output-card{margin-top:18px;padding:18px;border:1px solid #ded5ee;border-radius:15px;background:linear-gradient(140deg,#fdfcff,#f7f3ff)}.output-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.strength-badge{padding:5px 8px;border-radius:999px;background:#e9f7ee;color:#2f724a;font-size:10.5px;font-weight:850;letter-spacing:.03em}.strength-badge[data-level="1"]{background:#fff0f0;color:#a33d3d}.strength-badge[data-level="2"]{background:#fff8e9;color:#906b20}.strength-badge[data-level="3"]{background:#eef6ff;color:#356b9d}.output-meta>span:last-child{color:#817889;font-size:11px}.output-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center}.primary-output{display:block;min-width:0;padding:13px 14px;background:#fff;border:1px solid #e3dcec;border-radius:11px;color:#2d2535;font:700 18px/1.45 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;overflow-wrap:anywhere;user-select:all}.icon-action,.secondary-button,.batch-copy{min-height:44px;padding:0 14px;border:1px solid #d8cfeb;border-radius:10px;background:#fff;color:var(--purple-700);font-weight:800;cursor:pointer}.icon-action:hover,.secondary-button:hover,.batch-copy:hover{border-color:#c6b8eb;background:#faf7ff}.strength-track{height:5px;margin-top:12px;overflow:hidden;background:#e8e3ee;border-radius:999px}.strength-track span{display:block;height:100%;width:100%;background:linear-gradient(90deg,var(--purple-500),var(--purple-700));border-radius:inherit;transition:width .18s ease}.output-note{margin:9px 0 0;color:#8a8290;font-size:11px;line-height:1.55}
.control-panel{margin-top:17px;display:grid;gap:14px}.control-block{padding:16px;border:1px solid #ece7f0;border-radius:13px;background:#fff}.control-heading,.batch-block{display:flex;align-items:center;justify-content:space-between;gap:16px}.control-heading label,.character-block legend,.batch-block label{color:#43394e;font-size:12px;font-weight:850}.control-heading span{color:#8c8492;font-size:11px}.length-row{margin-top:12px;display:grid;grid-template-columns:minmax(0,1fr) 78px;gap:12px;align-items:center}.length-row input[type="range"]{width:100%;accent-color:var(--purple-600)}.length-row input[type="number"],.batch-block select{width:100%;height:42px;border:1px solid #ddd6e6;border-radius:9px;background:#fff;color:#443a4f;font:700 13px inherit;text-align:center}.character-block{margin:0}.check-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:12px}.check-grid label,.toggle-row{display:flex;align-items:center;gap:10px;padding:11px;border:1px solid #e7e1ec;border-radius:10px;background:#fcfbfd;cursor:pointer}.check-grid input,.toggle-row input{width:17px;height:17px;accent-color:var(--purple-600)}.check-grid strong,.toggle-row strong{display:block;color:#4c4356;font-size:11.5px}.check-grid small,.toggle-row small{display:block;margin-top:2px;color:#958c9c;font-size:10px;line-height:1.4}.toggle-row{margin-top:10px}.batch-block p{margin:4px 0 0;color:#918997;font-size:10.5px}.batch-block select{width:92px;padding:0 8px}.primary-button{width:100%;min-height:50px;margin-top:16px;border:0;border-radius:11px;background:linear-gradient(135deg,var(--purple-700),var(--purple-500));color:#fff;font-size:13px;font-weight:850;cursor:pointer;box-shadow:0 8px 18px rgba(93,53,204,.2)}.primary-button:hover{filter:brightness(.985);box-shadow:0 10px 22px rgba(93,53,204,.24)}.validation-message{margin-top:14px;padding:10px 12px;border:1px solid #ffd6d6;border-radius:9px;background:#fff5f5;color:#9c3c3c;font-size:12px}.privacy-note{margin-top:15px;padding:12px 14px;display:flex;gap:10px;align-items:flex-start;border:1px solid #dbece1;border-radius:11px;background:#f7fcf9}.privacy-mark{width:20px;height:20px;display:grid;place-items:center;flex:none;border-radius:50%;background:#e5f5eb;color:#377a50;font-weight:900}.privacy-note p{margin:0;color:#648071;font-size:11px;line-height:1.55}.privacy-note strong{color:#365c47}.batch-results{margin-top:16px;padding:15px;border:1px solid #e3dced;border-radius:13px;background:#fbf9ff}.batch-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:11px}.batch-head h3{margin:4px 0 0;color:#403549;font-size:15px}.batch-list{display:grid;gap:8px}.batch-item{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:9px 10px;background:#fff;border:1px solid #e7e1ed;border-radius:9px}.batch-item code{min-width:0;color:#413849;font:650 12px/1.45 ui-monospace,SFMono-Regular,Menlo,monospace;overflow-wrap:anywhere}.batch-copy{min-height:34px;padding:0 10px;font-size:10.5px}
.landing-content{width:min(980px,calc(100% - 0px));margin:0 auto;padding:18px 0 15px}.seo-section{margin-top:48px}.section-heading{margin-bottom:24px}.section-label{width:fit-content;text-transform:uppercase;padding:6px 9px;background:var(--purple-50);border:1px solid #e5ddf8;border-radius:999px}.section-heading h2{margin:10px 0 9px;color:var(--purple-950);font-size:28px;line-height:1.25;letter-spacing:-.45px}.purple-rule{display:block;width:48px;height:3px;background:linear-gradient(90deg,var(--purple-700),var(--purple-300));border-radius:99px}.section-heading>p{max-width:720px;margin:12px 0 0;color:#7b7482;font-size:15px;line-height:1.7}.steps-grid,.features-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.steps-grid article,.features-grid article{position:relative;overflow:hidden;padding:20px;background:linear-gradient(145deg,#fff,#fdfcff);border:1px solid #e8e1f0;border-radius:14px;box-shadow:0 7px 22px rgba(65,36,126,.035);transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease,background .18s ease}.steps-grid article:after{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:linear-gradient(180deg,var(--purple-700),var(--purple-300));opacity:0;transition:opacity .18s ease}.steps-grid article:hover,.features-grid article:hover{transform:translateY(-3px);border-color:#d5c8ef;box-shadow:var(--shadow-hover)}.steps-grid article:hover:after{opacity:1}.step-number{width:40px;height:40px;display:grid;place-items:center;margin-bottom:14px;color:#fff;background:linear-gradient(135deg,var(--purple-700),var(--purple-500));border-radius:11px;box-shadow:0 5px 12px rgba(93,53,204,.18);font-size:13px;font-weight:850}.steps-grid h3,.features-grid h3{margin:0 0 8px;color:var(--purple-950);font-size:16px;line-height:1.35}.steps-grid p,.features-grid p{margin:0;color:#746d7b;font-size:15px;line-height:1.68}.features-grid article{min-height:154px;overflow:hidden;border-color:#e9e2f5}.features-grid article:before{content:"";position:absolute;top:-26px;right:-26px;width:72px;height:72px;border-radius:50%;background:rgba(129,95,240,.08);transition:transform .2s ease,background .2s ease}.features-grid article:hover:before{background:rgba(129,95,240,.13);transform:scale(1.14)}.features-grid article:nth-child(1),.features-grid article:nth-child(6){background:linear-gradient(145deg,#fff,#f6f2ff)}.features-grid article:nth-child(2),.features-grid article:nth-child(5){background:linear-gradient(145deg,#fff,#fbf9ff)}.features-grid article:nth-child(3),.features-grid article:nth-child(4){background:linear-gradient(145deg,#fdfcff,#f2edff)}.features-grid h3,.features-grid p{position:relative;z-index:1}
.guidance-card{padding:24px;background:linear-gradient(135deg,#faf8ff 0%,#fff 75%);border:1px solid #ddd4f1;border-radius:16px;box-shadow:0 10px 28px rgba(67,38,125,.055)}.guidance-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.guidance-grid>div{padding:17px;background:#fff;border:1px solid #e8e1ee;border-radius:12px}.guidance-grid span{display:block;color:var(--purple-700);font-size:10px;font-weight:850;letter-spacing:.07em}.guidance-grid h3{margin:6px 0 7px;color:var(--purple-950);font-size:16px}.guidance-grid p,.guidance-footnote{margin:0;color:#746d7b;font-size:15px;line-height:1.68}.guidance-footnote{margin-top:18px;padding-top:16px;border-top:1px solid #e5deea}.faq-list{border-top:1px solid #ded6ea}.faq-list details{position:relative;padding:0 15px;border-bottom:1px solid #ded6ea;transition:background .18s ease,box-shadow .18s ease}.faq-list details:hover{background:#faf8ff}.faq-list details[open]{background:#f8f5ff;box-shadow:inset 4px 0 0 var(--purple-500)}.faq-list summary{min-height:60px;padding:17px 38px 17px 0;display:flex;align-items:center;color:#40364d;font-size:15px;line-height:1.45;font-weight:760;list-style:none;cursor:pointer}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary:after{content:'+';position:absolute;right:15px;color:var(--purple-600);font-size:21px}.faq-list details[open] summary:after{content:'−'}.faq-list p{margin:-2px 0 0;padding:0 38px 18px 0;color:#746d7b;font-size:15px;line-height:1.7}.related-tools-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.related-tool-card{position:relative;min-height:78px;padding:15px 15px 15px 17px;display:flex;align-items:center;justify-content:space-between;gap:14px;overflow:hidden;color:inherit!important;background:#fff;border:1px solid #e2dbea;border-radius:12px;text-decoration:none!important;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.related-tool-card:before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:var(--purple-500);opacity:.3;transition:width .18s ease,opacity .18s ease}.related-tool-card:hover{transform:translateY(-2px);border-color:#cfc0ef;box-shadow:var(--shadow-hover)}.related-tool-card:hover:before{width:5px;opacity:1}.related-tool-card span{display:block;margin-bottom:4px;color:#918998;font-size:11px}.related-tool-card h3{margin:0;color:var(--purple-950);font-size:14px}.related-tool-arrow{width:32px;height:32px;display:grid;place-items:center;flex:none;color:var(--purple-700);background:var(--purple-100);border-radius:9px;transition:transform .18s ease,background .18s ease}.related-tool-card:hover .related-tool-arrow{transform:translateX(2px);background:#e5ddfb}
button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid rgba(129,95,240,.24);outline-offset:2px}
@media(max-width:760px){.check-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.steps-grid,.features-grid,.guidance-grid{grid-template-columns:1fr}.features-grid article{min-height:0}}
@media(max-width:620px){.password-app{padding:0 14px 55px}.hero-section{padding:32px 0 25px}.hero-section h1{font-size:clamp(34px,10vw,44px);line-height:1.07}.hero-subtitle{font-size:15px;line-height:1.58}.trust-row{display:grid;width:fit-content;text-align:left}.tool-shell{padding:17px;border-radius:16px}.tool-topbar{flex-direction:column}.mode-tabs{width:100%;min-width:0}.output-meta{align-items:flex-start;flex-direction:column;gap:7px}.output-row{grid-template-columns:1fr}.icon-action{width:100%}.primary-output{font-size:15px}.length-row{grid-template-columns:minmax(0,1fr) 72px}.check-grid{grid-template-columns:1fr}.batch-block{align-items:flex-end}.batch-item{grid-template-columns:1fr}.batch-copy{width:100%}.landing-content{width:100%}.seo-section{margin-top:35px}.section-heading h2{font-size:24px}.steps-grid article,.features-grid article{padding:18px}.steps-grid article:hover,.features-grid article:hover,.related-tool-card:hover{transform:none}.guidance-card{padding:18px}.faq-list details{padding:0 12px}.faq-list p{padding-right:12px}.related-tools-grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.password-app *,.password-app *::before,.password-app *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
