*{box-sizing:border-box}[hidden]{display:none!important}body{min-height:100vh;margin:0;background:radial-gradient(circle at 8% 5%,#f2cbbd9e,#0000 27rem),radial-gradient(circle at 92% 92%,#d3c6e2b8,#0000 30rem),#f2eee8}[data-theme=dark] body{background:radial-gradient(circle at 8% 5%,#7048546b,#0000 27rem),radial-gradient(circle at 92% 92%,#573f6585,#0000 30rem),#1d1921}button,input,select{font:inherit}button{cursor:pointer}main{width:min(1180px,calc(100% - 2.5rem));margin:0 auto;padding:1.25rem 0 1rem}.topbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.9rem}.brand{display:flex;align-items:center;gap:.8rem}.brand-mark{position:relative;display:grid;width:46px;height:46px;place-items:center;border-radius:15px;background:var(--plum);color:#fff;font:italic 700 2rem/1 Georgia,serif;box-shadow:0 8px 20px#493d583d;overflow:hidden}.brand-letter{transform:translate(-.08rem,.08rem)}.brand-star{position:absolute;top:7px;right:7px;color:#e7b4ae;font:700 .52rem/1 sans-serif}h1,h2,p{margin-top:0}h1{margin-bottom:.05rem;font:700 2rem/1 Georgia,serif;letter-spacing:-.04em}.brand p{margin-bottom:0;color:var(--muted);font-size:.88rem}.header-actions{display:flex;align-items:center;gap:.55rem}.install-button{display:flex;min-height:36px;padding:.4rem.7rem;align-items:center;gap:.35rem;border:1px solid#5f516e33;border-radius:999px;background:#fffdf8b8;color:var(--plum);font-size:.76rem;font-weight:800}.install-button:hover,.install-button[data-ready=true]{background:var(--lavender)}.install-button[hidden]{display:none}.theme-button{display:grid;width:36px;height:36px;flex:none;place-items:center;border:1px solid#5f516e33;border-radius:50%;background:#fffdf8b8;color:var(--plum);font-size:1rem}.theme-button:hover{background:var(--lavender)}.theme-button svg{display:block}.theme-button .icon-sun{display:none}:root[data-theme=dark] .theme-button .icon-moon{display:none}:root[data-theme=dark] .theme-button .icon-sun{display:block}.presence{display:flex;align-items:center;gap:.45rem;padding:.45rem.75rem;border:1px solid#5f516e1f;border-radius:999px;background:#fffdf8b3;color:var(--muted);font-size:.78rem;font-weight:700}.presence>span:first-child{width:7px;height:7px;border-radius:50%;background:#82a98d}.presence[hidden]{display:none}#network-indicator>span:first-child{background:#d18b7c}.presence-help{display:grid;width:.9rem;height:.9rem;place-items:center;border:1px solid currentcolor;border-radius:50%;font-size:.58rem}.has-tooltip{cursor:help;outline:none}.has-tooltip:focus{box-shadow:0 0 0 3px#9b88ac33}.profile-panel{margin-bottom:.9rem;border:1px solid#5f516e21;border-radius:18px;background:#fffdf8b8;box-shadow:0 8px 30px#4135490f}.profile-panel summary{display:flex;align-items:center;min-height:60px;padding:.65rem 1rem;list-style:none;cursor:pointer}.profile-panel summary::-webkit-details-marker{display:none}.profile-icon{display:grid;width:34px;height:34px;margin-right:.7rem;place-items:center;border-radius:11px;background:var(--lavender);color:var(--plum)}.profile-heading{display:grid;gap:.06rem}.profile-heading strong{font-size:.9rem}.profile-heading small{color:var(--muted);font-size:.75rem}.disclosure{margin-left:auto;color:var(--muted);transition:transform.16s}.profile-panel[open] .disclosure{transform:rotate(180deg)}.profile-content{display:grid;gap:.75rem;padding:0 1rem 1rem 3.65rem}.microcopy{grid-column:1/-1;margin:0;color:var(--muted);font-size:.75rem}.microcopy[data-type=error]{color:#a44747}.microcopy[data-type=success]{color:#52765c}.microcopy[data-type=error]:before{display:inline-grid;width:1rem;height:1rem;margin-right:.3rem;place-items:center;border:1px solid currentcolor;border-radius:50%;content:"!";font-size:.65rem;font-weight:900}.workspace{position:relative;isolation:isolate;display:grid;grid-template-columns:minmax(0,1.18fr)minmax(310px,.82fr);gap:.9rem;align-items:start}@media (width>=841px){.workspace:after{position:absolute;right:4.5rem;bottom:2.1rem;z-index:-1;color:#5f516e33;content:"✦  ·  ✧";font:700 2.6rem/1 Georgia,serif;letter-spacing:.55rem;transform:rotate(-8deg);text-shadow:3.8rem 2.5rem#bf8b791f}[data-theme=dark] .workspace:after{color:#d8c9e62e}}.panel{border:1px solid#5f516e21;border-radius:24px;background:#fffdf8eb;box-shadow:0 18px 55px#41354917}.generator-panel{padding:1.25rem}.panel-heading,.result-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.eyebrow{display:block;margin-bottom:.25rem;color:#9a6b5d;font-size:.68rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}h2{margin-bottom:0;font:700 1.45rem/1.15 Georgia,serif;letter-spacing:-.025em}.sparkle{color:#bf8b79;font-size:1.5rem}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:.78rem;margin-top:1rem}.recipe-row{display:grid;grid-template-columns:1fr 7rem;gap:.78rem;align-items:end}.recipe-row .style-field{grid-column:1/-1}.recipe-row .version-field{max-width:7rem}.recipe-row:has(#separator-row[hidden]) .style-field{grid-column:1}.full{grid-column:1/-1}label{display:grid;gap:.32rem;color:#5d5561;font-size:.76rem;font-weight:600}.label-line{display:flex;align-items:center;gap:.3rem}.help-tip{position:relative;display:inline-grid;width:1rem;height:1rem;place-items:center;border:1px solid currentcolor;border-radius:50%;color:var(--muted);cursor:help;font-size:.65rem;line-height:1}.help-tip:focus{outline:2px solid#9b88ac73;outline-offset:2px}.field-tooltip{position:fixed;z-index:50;width:max-content;max-width:min(260px,calc(100vw - 20px));padding:.55rem.65rem;border:1px solid#ffffff1f;border-radius:9px;background:#493d58;color:#fff;box-shadow:0 8px 24px#302a354d;font-size:.72rem;font-weight:600;line-height:1.45;pointer-events:none}[data-theme=dark] .field-tooltip{background:#17131a;color:#f8f2f8;border-color:#e8deef40}input,select{width:100%;min-height:42px;padding:.58rem.72rem;border:1px solid var(--line);border-radius:11px;outline:none;background-color:#fff;color:var(--ink);font-size:16px;transition:border-color.14s,box-shadow.14s}input:focus,select:focus{border-color:#9b88ac;box-shadow:0 0 0 3px#9b88ac29}input[aria-invalid=true]{border-color:#a44747;box-shadow:0 0 0 3px#a447471f}.input-with-action{position:relative;display:block}.input-with-action input{padding-right:4rem}.text-button{position:absolute;top:50%;right:.45rem;min-height:30px;padding:0 .55rem;transform:translateY(-50%);border:0;background:#0000;color:var(--plum);font-size:.75rem;font-weight:800}.length-settings{min-width:0;margin:0;padding:0;border:0}.length-settings legend{margin-bottom:.35rem;color:#5d5561;font-size:.76rem;font-weight:600}.length-modes{display:grid;grid-template-columns:1fr 1fr;gap:.55rem}.length-modes label{display:flex;min-width:0;padding:.55rem.65rem;align-items:center;gap:.55rem;border:1px solid var(--line);border-radius:11px;background:#fff;cursor:pointer}.length-modes label:has(input:checked){border-color:#9b88ac;background:#e8deef73}.length-modes input{width:auto;min-height:auto;margin:0;padding:0;accent-color:var(--plum)}.length-modes span{display:grid;min-width:0;gap:.05rem}.length-modes strong{color:var(--ink);font-size:.76rem}.length-modes small{color:var(--muted);font-size:.67rem;font-weight:600}.length-control{margin-top:.65rem}.length-control[hidden]{display:none}.length-control>span{display:flex;justify-content:space-between;align-items:center}.length-control output{min-width:2rem;padding:.18rem.5rem;border-radius:999px;background:var(--lavender);color:var(--plum-dark);text-align:center}input[type=range]{min-height:24px;padding:0;accent-color:var(--plum)}.length-guidance{display:flex;margin-top:.55rem;align-items:baseline;gap:.45rem;color:var(--muted);font-size:.7rem}.length-guidance strong{color:#52765c;white-space:nowrap}.length-guidance[data-level=good] strong{color:#8b6c35}.length-guidance[data-level=short] strong{color:#a44747}.length-guidance[data-level=compatibility] strong{color:var(--plum)}.copy-button{min-height:40px;padding:.5rem.8rem;border:1px solid var(--plum);border-radius:10px;background:#0000;color:var(--plum);font-size:.78rem;font-weight:800}.profile-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.7rem;grid-column:1/-1}.button-group{display:flex;flex-wrap:wrap;gap:.4rem}.primary-group{padding-right:.7rem;border-right:1px solid var(--line)}.pb{display:inline-flex;align-items:center;gap:.4rem;min-height:38px;padding:.45rem.8rem;border:1px solid var(--line);border-radius:10px;background:#fffdf8d1;color:var(--plum);font-size:.78rem;font-weight:750}.pb svg{width:16px;height:16px;flex:none}.pb:hover:not(:disabled){border-color:#9b88ac;background:var(--lavender)}.pb-solid{border-color:var(--plum);background:var(--plum);color:#fff;font-weight:800}.pb-solid:hover:not(:disabled){border-color:var(--plum-dark);background:var(--plum-dark)}.pb-subtle{border-color:#0000;background:#0000;color:var(--muted);font-size:.72rem;font-weight:650;opacity:.72}.pb-subtle:hover:not(:disabled){opacity:1}.pb:disabled{border-color:var(--line);background:#0000;color:var(--muted);cursor:default;opacity:.58}.profile-qr{display:grid;grid-template-columns:minmax(150px,220px)minmax(150px,260px);grid-column:1/-1;justify-content:start;align-items:center;gap:.6rem;margin:.2rem 0 0}.profile-qr-canvas{width:100%;padding:.7rem;border:1px solid var(--line);border-radius:16px;background:#fff;box-shadow:0 8px 24px#4135491a}.profile-qr-canvas svg{display:block;width:100%;height:auto}.profile-qr figcaption{color:var(--muted);font-size:.72rem;line-height:1.45}.qr-guidance{display:grid;gap:.3rem}.qr-guidance strong{color:var(--ink);font-size:.78rem}.qr-guidance b{color:var(--plum)}.qr-guidance small{font-size:.66rem}.generate-button{display:flex;width:100%;min-height:48px;margin-top:.85rem;padding:.7rem 1rem;align-items:center;justify-content:space-between;border:0;border-radius:13px;background:var(--plum);color:#fff;font-weight:800;box-shadow:0 10px 22px#493d5838}.generate-button:hover{background:var(--plum-dark)}.generate-button:disabled{opacity:.62;cursor:wait}.result-panel{position:sticky;top:1rem;min-height:350px;padding:1.25rem;overflow:hidden;background:linear-gradient(145deg,#e8deefe6,#fffdf8f5 55%),var(--cream)}.copy-button{min-width:68px}#password-result{min-height:126px;margin:1.1rem 0 .75rem;padding:1rem;border:1px solid#5f516e21;border-radius:15px;background:#ffffffb8;color:var(--plum-dark);font:750 1.12rem/1.55 ui-monospace,SFMono-Regular,Menlo,monospace;overflow-wrap:anywhere;white-space:pre-wrap;user-select:all;scroll-margin:1.5rem;transition:border-color.2s,box-shadow.2s}#password-result:focus-visible{outline:none;border-color:var(--plum);box-shadow:0 0 0 3px#5f516e38}#password-result.just-generated{animation:password-reveal 1.1s}@keyframes password-reveal{0%{border-color:var(--plum);box-shadow:0 0 0 4px#5f516e47}60%{border-color:var(--plum);box-shadow:0 0 0 6px#5f516e1a}to{box-shadow:0 0#5f516e00}}@media (prefers-reduced-motion:reduce){#password-result{transition:none}#password-result.just-generated{animation:none}}.password-strength{display:flex;margin:-.2rem 0 .65rem;align-items:center;gap:.5rem;color:var(--muted);font-size:.72rem}.password-strength[hidden]{display:none}.password-strength strong{padding:.22rem.5rem;border-radius:999px;background:#82a98d2e;color:#52765c;white-space:nowrap}.password-strength[data-level=good] strong{background:#cfa45c2e;color:#8b6c35}.password-strength[data-level=short] strong{background:#be676729;color:#a44747}.password-strength[data-level=compatibility] strong{background:var(--lavender);color:var(--plum)}#status{min-height:1.3rem;margin-bottom:.9rem;color:var(--muted);font-size:.78rem;line-height:1.45}#status[data-type=error]{color:#a44747}#status[data-type=success]{color:#52765c}.soft-tip{display:flex;gap:.65rem;padding:.75rem;border-radius:13px;background:#f2cbbd5c;color:#6c5b57}.soft-tip span{color:#ad7766}.soft-tip p{margin:0;font-size:.76rem;line-height:1.45}footer{padding:.8rem 0 0;color:#8b828e;text-align:center;font-size:.72rem}footer .footer-brand{font-family:Georgia,serif;font-weight:700}.version-button{padding:0;border:0;border-bottom:1px dotted currentcolor;background:#0000;color:inherit;font:inherit;font-variant-numeric:tabular-nums}.version-button:hover{color:var(--plum)}.toast{position:fixed;top:1rem;right:1rem;z-index:40;max-width:min(340px,calc(100% - 2rem));padding:.7rem.9rem;border:1px solid#5f516e2e;border-radius:12px;background:var(--cream);color:#52765c;box-shadow:0 14px 42px#302a3538;font-size:.78rem;font-weight:750}.toast[data-type=error]{color:#a44747}.toast[data-type=info]{color:var(--plum)}.toast.toast-animate{animation:toast-attention.55s cubic-bezier(.2,.9,.3,1.2)}@keyframes toast-attention{0%{opacity:0;transform:translateY(-12px)scale(.94)}55%{opacity:1;transform:translateY(3px)scale(1.035)}78%{transform:translateY(0)scale(.99)}to{transform:translateY(0)scale(1)}}@keyframes banner-attention{0%{opacity:0;transform:translateY(14px)scale(.94)}55%{opacity:1;transform:translateY(-3px)scale(1.035)}78%{transform:translateY(0)scale(.99)}to{transform:translateY(0)scale(1)}}@media (prefers-reduced-motion:reduce){.toast.toast-animate,.update-banner.banner-animate{animation:none}}.install-dialog{width:min(570px,calc(100% - 2rem));max-height:min(680px,calc(100dvh - 2rem));padding:1.25rem;overflow:auto;border:1px solid#5f516e29;border-radius:24px;background:var(--cream);color:var(--ink);box-shadow:0 24px 80px#302a3547}.install-dialog::backdrop{background:#302a3552;backdrop-filter:blur(4px)}.dialog-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.dialog-close{display:grid;width:34px;height:34px;flex:none;place-items:center;border:0;border-radius:50%;background:var(--lavender);color:var(--plum);font-size:1.3rem;line-height:1}.dialog-intro{margin:.65rem 0 1rem;color:var(--muted);font-size:.84rem;line-height:1.5}.install-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:.55rem}.install-steps section{padding:.75rem;border:1px solid var(--line);border-radius:13px;background:#fff}.install-steps strong{color:var(--plum-dark);font-size:.78rem}.install-steps p{margin:.3rem 0 0;color:var(--muted);font-size:.72rem;line-height:1.45}.install-dialog[data-platform=android] [data-platform=android],.install-dialog[data-platform=desktop] [data-platform=desktop],.install-dialog[data-platform=ios] [data-platform=ios]{border-color:#b7a5c6;background:#e8deef73}.dialog-note{margin:.8rem 0 0;padding:.65rem.75rem;border-radius:11px;background:#f2cbbd4d;color:#6c5b57;font-size:.74rem}[data-theme=dark] .brand-mark,[data-theme=dark] .generate-button,[data-theme=dark] .pb-solid{background:#725d7f;color:#fff}[data-theme=dark] .pb-solid:not(:disabled){border-color:#725d7f}[data-theme=dark] .pb-solid:hover:not(:disabled){background:#836d90;border-color:#836d90}[data-theme=dark] .generate-button:hover{background:#836d90}[data-theme=dark] .install-button,[data-theme=dark] .presence,[data-theme=dark] .profile-panel,[data-theme=dark] .theme-button{background:#29232dd1;border-color:#c2a9d033}[data-theme=dark] .panel{background:#29232df0;border-color:#c2a9d02e}[data-theme=dark] label{color:#c7bdc9}[data-theme=dark] input,[data-theme=dark] select{background-color:#211c25;color:var(--ink)}[data-theme=dark] .pb{background:#29232db3;border-color:#c2a9d033;color:var(--plum)}[data-theme=dark] .pb-subtle{border-color:#0000;background:#0000;color:var(--muted)}[data-theme=dark] .pb:hover:not(:disabled){border-color:#8c729b;color:var(--plum-dark);background:#3d3345b8}[data-theme=dark] .pb:disabled{border-color:var(--line);background:#0000;color:var(--muted)}[data-theme=dark] .length-settings legend{color:#c7bdc9}[data-theme=dark] .length-modes label{background:#211c25}[data-theme=dark] .length-modes label:has(input:checked){background:#3d3345b8}[data-theme=dark] .length-guidance strong,[data-theme=dark] .password-strength strong{color:#9bc7a4}[data-theme=dark] .length-guidance[data-level=good] strong,[data-theme=dark] .password-strength[data-level=good] strong{color:#e1c17e}[data-theme=dark] .length-guidance[data-level=short] strong,[data-theme=dark] .password-strength[data-level=short] strong{color:#ef9999}[data-theme=dark] .length-guidance[data-level=compatibility] strong,[data-theme=dark] .password-strength[data-level=compatibility] strong{color:var(--plum-dark)}[data-theme=dark] .more-options{border-top-color:#403743}[data-theme=dark] .eyebrow{color:#d9a293}[data-theme=dark] .sparkle{color:#d5a092}[data-theme=dark] .result-panel{background:linear-gradient(145deg,#3d3345eb,#29232df7 55%),var(--cream)}[data-theme=dark] #password-result{background:#1a161db8;border-color:#c2a9d033}[data-theme=dark] #status[data-type=error],[data-theme=dark] .microcopy[data-type=error]{color:#ef9999}[data-theme=dark] #status[data-type=success],[data-theme=dark] .microcopy[data-type=success]{color:#9bc7a4}[data-theme=dark] .soft-tip{background:#704a4357;color:#ddbeb7}[data-theme=dark] .soft-tip span{color:#d8a092}[data-theme=dark] footer{color:#a99eac}[data-theme=dark] .install-dialog{background:#29232d;border-color:#c2a9d038}[data-theme=dark] .install-dialog::backdrop{background:#0a080c9e}[data-theme=dark] .install-steps section{background:#211c25}[data-theme=dark] .install-dialog[data-platform=android] [data-platform=android],[data-theme=dark] .install-dialog[data-platform=desktop] [data-platform=desktop],[data-theme=dark] .install-dialog[data-platform=ios] [data-platform=ios]{border-color:#8c729b;background:#3d3345b8}[data-theme=dark] .dialog-note{background:#704a434d;color:#ddbeb7}[data-theme=dark] .toast{background:#29232d;border-color:#c2a9d038;color:#9bc7a4}[data-theme=dark] .toast[data-type=error]{color:#ef9999}.update-banner{position:fixed;left:0;right:0;bottom:1rem;z-index:20;display:flex;align-items:center;gap:.55rem;width:max-content;max-width:calc(100% - 1.5rem);margin:0 auto;padding:.55rem.6rem.55rem.85rem;border:1px solid#5f516e2e;border-radius:14px;background:var(--cream);box-shadow:0 16px 44px#302a353d;font-size:.8rem}.update-banner[hidden]{display:none}.update-banner.banner-animate{animation:banner-attention.55s cubic-bezier(.2,.9,.3,1.2)}.update-text{color:var(--ink);font-weight:700}.update-refresh{min-height:34px;padding:.4rem.8rem;flex:none;white-space:nowrap;border:0;border-radius:9px;background:var(--plum);color:#fff;font-size:.78rem;font-weight:800}.update-refresh:hover{background:var(--plum-dark)}.update-dismiss{display:grid;width:30px;height:30px;flex:none;place-items:center;border:0;border-radius:50%;background:#0000;color:var(--muted);font-size:1.2rem;line-height:1}.update-dismiss:hover{background:var(--lavender);color:var(--plum)}[data-theme=dark] .update-banner{background:#29232d;border-color:#c2a9d038}[data-theme=dark] .update-refresh{background:#725d7f}.skip-link{position:fixed;top:-3.5rem;left:50%;z-index:200;transform:translate(-50%);padding:.55rem 1.1rem;border:0;border-radius:0 0 12px 12px;background:var(--plum);color:#fff;font-size:.8rem;font-weight:700;text-decoration:none;white-space:nowrap;transition:top.16s}.skip-link:focus{top:0;outline:none}[data-theme=dark] .skip-link{background:#725d7f}@media (width<=840px){main{width:min(720px,calc(100% - 1.25rem))}.workspace{grid-template-columns:1fr}.result-panel{position:static;min-height:0}}@media (width<=560px){main{padding-top:.75rem}.brand p{display:none}.profile-content{padding-left:1rem}.profile-toolbar{display:grid;width:100%}.button-group{display:grid;width:100%;grid-template-columns:1fr 1fr}.primary-group{padding:0 0 .7rem;border-right:0;border-bottom:1px solid var(--line)}.primary-group:has(#save-profile[hidden]) #create-profile{grid-column:1/-1}.pb{justify-content:center}.microcopy{grid-column:auto}.form-grid{grid-template-columns:1fr;gap:.65rem}.recipe-row{gap:.65rem}.full{grid-column:1/-1}.generator-panel,.result-panel{padding:1rem;border-radius:20px}.result-panel{order:2}#password-result{min-height:96px}.install-dialog{width:calc(100% - 1rem);margin-bottom:.5rem;border-radius:22px}.install-steps{grid-template-columns:1fr}.length-guidance,.password-strength{align-items:flex-start}.profile-qr{grid-template-columns:minmax(130px,.9fr)minmax(145px,1.1fr);align-items:start}.toast{top:.7rem;left:0;right:0;width:max-content;margin:0 auto}}@media (width<=350px){.length-modes,.profile-qr{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){*,:after,:before{scroll-behavior:auto!important;transition:none!important}}