*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg-primary: #fafafa;--bg-secondary: #ffffff;--bg-elevated: #ffffff;--bg-subtle: #f5f5f5;--accent-primary: #7c3aed;--accent-secondary: #8b5cf6;--accent-light: rgba(124, 58, 237, .08);--accent-gradient: linear-gradient(135deg, #7c3aed 0%, #6d28d9 100%);--text-primary: #111827;--text-secondary: #4b5563;--text-muted: #9ca3af;--border-light: rgba(0, 0, 0, .06);--border-hover: rgba(0, 0, 0, .12);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .04);--shadow-md: 0 4px 12px rgba(0, 0, 0, .06);--shadow-lg: 0 12px 40px rgba(0, 0, 0, .08);--shadow-glow: 0 0 0 3px rgba(124, 58, 237, .1);--font-sans: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;--font-mono: "JetBrains Mono", monospace;--space-xs: .5rem;--space-sm: .75rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2.5rem;--space-2xl: 4rem;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 24px;--ease-out: cubic-bezier(.16, 1, .3, 1);--duration-fast: .15s;--duration-normal: .3s;--strength-weak: #ef4444;--strength-fair: #f59e0b;--strength-good: #10b981;--strength-strong: #7c3aed}html{font-size:16px;scroll-behavior:smooth}body{font-family:var(--font-sans);background:var(--bg-primary);color:var(--text-primary);line-height:1.6;min-height:100vh;-webkit-font-smoothing:antialiased}h1,h2,h3{font-weight:700;letter-spacing:-.025em;line-height:1.2;color:var(--text-primary)}h1{font-size:clamp(2rem,5vw,3rem)}h2{font-size:clamp(1.5rem,3vw,2rem)}h3{font-size:1.125rem}p{color:var(--text-secondary)}code{font-family:var(--font-mono);background:var(--bg-subtle);padding:2px 6px;border-radius:4px}a{color:var(--accent-primary);text-decoration:none;transition:color var(--duration-fast) var(--ease-out)}a:hover{color:var(--accent-secondary)}.container{max-width:700px;margin:0 auto;padding:0 var(--space-lg)}.site-header{position:sticky;top:0;z-index:100;padding:var(--space-md) 0;background:#ffffffe6;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border-light)}.header-container{display:flex;align-items:center;justify-content:space-between;max-width:700px;margin:0 auto;padding:0 var(--space-lg)}.logo{display:flex;align-items:center;gap:10px;font-weight:700;font-size:1.125rem;color:var(--text-primary)}.logo svg{color:var(--accent-primary)}.nav-list{display:flex;gap:var(--space-xl);list-style:none}.nav-list a{font-size:.875rem;font-weight:500;color:var(--text-muted)}.nav-list a:hover{color:var(--text-primary)}.main-content{padding:var(--space-2xl) 0;min-height:100vh}.hero{text-align:center;padding:var(--space-xl) 0 var(--space-2xl);max-width:500px;margin:0 auto}.hero h1{margin-bottom:var(--space-md)}.hero-subtitle{font-size:1.125rem;color:var(--text-muted)}.tool-tabs{display:inline-flex;gap:4px;margin-bottom:var(--space-xl);padding:4px;background:var(--bg-subtle);border-radius:var(--radius-md)}.tab-btn{padding:var(--space-sm) var(--space-lg);background:transparent;border:none;color:var(--text-muted);font-size:.875rem;font-weight:500;cursor:pointer;border-radius:var(--radius-sm);transition:all var(--duration-fast) var(--ease-out)}.tab-btn:hover{color:var(--text-secondary)}.tab-btn.is-active{background:var(--bg-secondary);color:var(--text-primary);box-shadow:var(--shadow-sm)}.tool-panel{display:none}.tool-panel.is-active{display:block;animation:fadeIn .25s var(--ease-out)}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.generator-card{background:var(--bg-secondary);border:1px solid var(--border-light);border-radius:var(--radius-xl);padding:var(--space-xl);box-shadow:var(--shadow-md)}.output-display{position:relative;background:var(--bg-subtle);border-radius:var(--radius-lg);padding:var(--space-lg);margin-bottom:var(--space-lg);min-height:80px;display:flex;align-items:center;justify-content:center}.passphrase-output{display:flex;flex-wrap:wrap;gap:var(--space-sm);justify-content:center;font-family:var(--font-mono);font-size:1.25rem}.passphrase-output .word{background:var(--accent-light);padding:4px 12px;border-radius:var(--radius-sm);color:var(--accent-primary);font-weight:500}.password-output{font-family:var(--font-mono);font-size:1.5rem;letter-spacing:.05em;word-break:break-all;text-align:center}.copy-btn{position:absolute;top:var(--space-sm);right:var(--space-sm);padding:8px;background:var(--bg-secondary);border:1px solid var(--border-light);border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;transition:all var(--duration-fast) var(--ease-out)}.copy-btn:hover{color:var(--accent-primary);border-color:var(--accent-primary)}.copy-btn.is-copied{background:#10b981;border-color:#10b981;color:#fff}.strength-meter{margin-bottom:var(--space-xl)}.strength-bar{height:6px;background:var(--bg-subtle);border-radius:3px;overflow:hidden;margin-bottom:var(--space-sm)}.strength-fill{height:100%;background:var(--accent-gradient);border-radius:3px;transition:width var(--duration-normal) var(--ease-out)}.strength-info{display:flex;justify-content:space-between;font-size:.8125rem}.entropy{color:var(--text-muted);font-family:var(--font-mono)}.crack-time{color:var(--accent-primary);font-weight:500}.controls{margin-bottom:var(--space-xl)}.control-row{margin-bottom:var(--space-lg)}.control-label{display:block;font-size:.75rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--space-xs)}.slider-group{display:flex;align-items:center;gap:var(--space-md)}.slider{flex:1;-webkit-appearance:none;height:6px;background:var(--bg-subtle);border-radius:3px}.slider::-webkit-slider-thumb{-webkit-appearance:none;width:20px;height:20px;background:var(--accent-primary);border-radius:50%;cursor:pointer;box-shadow:var(--shadow-sm)}.slider-value{font-size:1rem;font-weight:700;color:var(--accent-primary);min-width:30px;text-align:center}.separator-options{display:flex;gap:var(--space-xs)}.sep-btn{padding:var(--space-xs) var(--space-md);background:var(--bg-subtle);border:1px solid var(--border-light);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:.875rem;color:var(--text-secondary);cursor:pointer;transition:all var(--duration-fast) var(--ease-out)}.sep-btn:hover{border-color:var(--accent-primary);color:var(--accent-primary)}.sep-btn.is-active{background:var(--accent-primary);border-color:var(--accent-primary);color:#fff}.checkbox-row,.checkbox-grid{display:flex;flex-wrap:wrap;gap:var(--space-md)}.checkbox-label{display:flex;align-items:center;gap:var(--space-xs);font-size:.875rem;color:var(--text-secondary);cursor:pointer}.checkbox-label input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent-primary)}.generate-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:var(--space-md) var(--space-xl);background:var(--accent-gradient);border:none;border-radius:var(--radius-md);color:#fff;font-size:1rem;font-weight:600;cursor:pointer;transition:all var(--duration-fast) var(--ease-out)}.generate-btn:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.faq-section{margin-top:var(--space-2xl);padding-top:var(--space-2xl);border-top:1px solid var(--border-light)}.faq-section h2{margin-bottom:var(--space-lg)}.faq-content h3{color:var(--text-primary);margin-top:var(--space-lg);margin-bottom:var(--space-sm);font-size:1rem}.faq-content p{color:var(--text-muted);line-height:1.8;font-size:.9375rem}.site-footer{margin-top:var(--space-2xl);padding:var(--space-xl) 0;border-top:1px solid var(--border-light);background:var(--bg-subtle)}.footer-container{max-width:700px;margin:0 auto;padding:0 var(--space-lg);text-align:center}.footer-links{display:flex;justify-content:center;gap:var(--space-xl);margin-bottom:var(--space-md)}.footer-links a{color:var(--text-muted);font-size:.8125rem;font-weight:500}.footer-links a:hover{color:var(--text-secondary)}.footer-copyright{color:var(--text-muted);font-size:.75rem}.toast{position:fixed;bottom:var(--space-xl);left:50%;transform:translate(-50%) translateY(20px);padding:var(--space-sm) var(--space-lg);background:var(--text-primary);border-radius:var(--radius-md);color:#fff;font-size:.875rem;font-weight:500;opacity:0;transition:all var(--duration-normal) var(--ease-out);z-index:1000}.toast.is-visible{opacity:1;transform:translate(-50%) translateY(0)}@media (max-width: 640px){.nav-list{display:none}.hero{padding:var(--space-lg) 0}.tool-tabs{width:100%}.tab-btn{flex:1;text-align:center}.passphrase-output{font-size:1rem}.password-output{font-size:1.125rem}}
