.recipient-password-gate{--gate-primary:#93294f;--gate-deep:#24151a;--gate-accent:#e0b96f;--gate-soft:#f6dce3;min-height:100dvh;padding:max(2.5rem, env(safe-area-inset-top)) max(1rem, env(safe-area-inset-right)) max(1.5rem, env(safe-area-inset-bottom)) max(1rem, env(safe-area-inset-left));background:var(--gate-deep);isolation:isolate;grid-template-columns:minmax(0,1fr);align-content:center;place-items:center;gap:1.4rem;display:grid;position:relative;overflow:hidden}.recipient-password-gate[data-palette=sage]{--gate-primary:#537864;--gate-deep:#172c24;--gate-accent:#deb96e;--gate-soft:#dce9df}.recipient-password-gate[data-palette=midnight]{--gate-primary:#70477b;--gate-deep:#100d21;--gate-accent:#e8c87f;--gate-soft:#dcd5ee}.recipient-password-gate[data-palette=aurora]{--gate-primary:#0d7770;--gate-deep:#082b2a;--gate-accent:#77d4ca;--gate-soft:#cfefec}.recipient-password-gate[data-palette=sunset]{--gate-primary:#bf555b;--gate-deep:#4a2426;--gate-accent:#f0a17e;--gate-soft:#ffe2d7}.recipient-password-gate[data-palette=frost]{--gate-primary:#58788e;--gate-deep:#1e3442;--gate-accent:#b3d4e5;--gate-soft:#e2f0f6}.recipient-password-gate[data-palette=champagne]{--gate-primary:#a75f6a;--gate-deep:#3c272a;--gate-accent:#dabb79;--gate-soft:#f5dfdc}.recipient-password-gate[data-palette=plum]{--gate-primary:#783b5c;--gate-deep:#281421;--gate-accent:#d1aa67;--gate-soft:#ead6e2}.recipient-password-gate__preview{z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 50% 45%, transparent 20%, #00000061 100%), radial-gradient(ellipse at 12% 12%, color-mix(in srgb, var(--gate-primary) 42%, transparent), transparent 55%), linear-gradient(135deg, var(--gate-deep), color-mix(in srgb, var(--gate-deep) 84%, var(--gate-primary)));position:absolute;inset:0;overflow:hidden}.recipient-password-gate__preview:after{content:"";opacity:.12;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.92' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23fff' filter='url(%23n)' opacity='.34' d='M0 0h180v180H0z'/%3E%3C/svg%3E");position:absolute;inset:0}.recipient-password-gate__light{aspect-ratio:1;background:radial-gradient(ellipse, color-mix(in srgb, var(--gate-primary) 50%, transparent), transparent 66%);border-radius:50%;width:min(80rem,100vw);animation:4.8s ease-in-out both password-light-drift;position:absolute}.recipient-password-gate__light--one{inset:-35% auto auto -30%}.recipient-password-gate__light--two{background:radial-gradient(ellipse, color-mix(in srgb, var(--gate-accent) 23%, transparent), transparent 66%);animation-direction:reverse;inset:auto -30% -50% auto}.recipient-password-gate__ribbons{width:100%;height:100%;position:absolute;inset:0}.recipient-password-gate__ribbon{transform-origin:50%;animation:4.8s ease-in-out both password-ribbon-sway}.recipient-password-gate__ribbon--two{animation-direction:reverse}.recipient-password-gate__stars{position:absolute;inset:0}.recipient-password-gate__stars span{top:var(--star-y);left:var(--star-x);background:var(--gate-accent);width:3px;height:3px;box-shadow:0 0 12px 2px color-mix(in srgb, var(--gate-accent) 25%, transparent);opacity:.35;animation:password-star-drift 4.8s ease-in-out var(--star-delay) both;border-radius:50%;position:absolute}.recipient-password-gate__stars span:nth-child(4n){clip-path:polygon(50% 0,60% 40%,100% 50%,60% 60%,50% 100%,40% 60%,0 50%,40% 40%);border-radius:0;width:7px;height:7px}.recipient-password-gate__celebration{opacity:0;position:absolute;inset:0}.recipient-password-gate__bloom{background:radial-gradient(ellipse, color-mix(in srgb, var(--gate-accent) 35%, transparent), transparent 60%);opacity:0;position:absolute;inset:-15%}.recipient-password-gate__spark{background:var(--gate-accent);opacity:0;border-radius:2px;width:5px;height:10px;position:absolute;top:45%;left:50%}.recipient-password-gate__spark:nth-child(3n){background:var(--gate-soft);border-radius:50%;width:4px;height:4px}.recipient-password-gate[data-state=unlocking] .recipient-password-gate__celebration{opacity:1}.recipient-password-gate[data-state=unlocking] .recipient-password-gate__bloom{animation:1.65s ease-out both password-unlock-bloom}.recipient-password-gate[data-state=unlocking] .recipient-password-gate__spark{animation:password-unlock-spark 1.3s cubic-bezier(.16, .7, .26, 1) var(--spark-delay) both}.recipient-password-gate[data-occasion=apology] .recipient-password-gate__spark{display:none}.recipient-password-card{z-index:2;color:#281b1e;background:linear-gradient(150deg,#fffdf9,#f7f2ec);border:1px solid #ffffff9e;border-radius:clamp(1.5rem,4vw,2rem);width:min(100%,31rem);min-width:0;padding:clamp(1.35rem,4vw,2.25rem);animation:.56s cubic-bezier(.2,.82,.2,1) both password-card-enter;position:relative;box-shadow:0 2.5rem 6rem #0a040761,inset 0 1px #ffffffe6}.recipient-password-card__brand{color:#281b1e;margin-block-end:1.75rem;text-decoration:none;display:inline-flex}.recipient-password-card__brand .brand-logo__mark{width:2.25rem;height:2.25rem}.recipient-password-card__brand .brand-logo__name{font-size:1.18rem}.recipient-password-card__lock{border:1px solid color-mix(in srgb, var(--gate-accent) 52%, transparent);background:linear-gradient(145deg, var(--gate-primary), color-mix(in srgb, var(--gate-primary) 60%, var(--gate-deep)));width:4.3rem;height:4.3rem;box-shadow:0 .75rem 1.6rem color-mix(in srgb, var(--gate-primary) 20%, transparent), inset 0 0 0 4px #ffffff12;color:#fff8e8;border-radius:50%;place-items:center;margin-block:.4rem 1.5rem;margin-inline:auto;display:grid;position:relative}.recipient-password-card__seal-ring{border:1px solid color-mix(in srgb, var(--gate-accent) 60%, transparent);border-radius:50%;position:absolute;inset:-7px}.recipient-password-card__lock>svg{width:1.55rem}.recipient-password-card__lock svg,.recipient-password-form svg,.recipient-password-form__submit svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px;width:1.25rem}.recipient-password-card__eyebrow{color:var(--gate-primary);letter-spacing:.12em;text-transform:uppercase;margin:0 0 .45rem;font-size:.72rem;font-weight:800}.recipient-password-card h1{max-width:13ch;font-family:var(--font-display);letter-spacing:-.035em;text-wrap:balance;margin:0;font-size:clamp(2rem,6vw,2.8rem);line-height:.98}.recipient-password-card__intro{color:#6f6063;max-width:38ch;margin:1rem 0 1.55rem;font-size:.96rem;line-height:1.55}.recipient-password-form{grid-template-columns:minmax(0,1fr);gap:.55rem;min-width:0;display:grid}.recipient-password-form>label{letter-spacing:.02em;font-size:.78rem;font-weight:780}.recipient-password-form__control{background:#fff;border:1px solid #d9cdca;border-radius:1rem;align-items:center;min-width:0;min-height:3.65rem;transition:border-color .16s,box-shadow .16s,transform .16s;display:flex;position:relative;box-shadow:inset 0 1px 2px #2c181d0a}.recipient-password-form__control:focus-within{border-color:var(--gate-primary);box-shadow:0 0 0 .24rem color-mix(in srgb, var(--gate-primary) 13%, transparent);transform:translateY(-1px)}.recipient-password-form__control[data-invalid=true]{border-color:#b3263f;box-shadow:0 0 0 .2rem #b3263f17}.recipient-password-form__field-icon{color:#8a757a;flex:none;place-items:center;width:3rem;display:grid}.recipient-password-form__field-icon svg{width:1.1rem}.recipient-password-form input{color:#281b1e;min-width:0;min-height:3.5rem;font:inherit;background:0 0;border:0;outline:0;flex:1;font-size:1rem}.recipient-password-form input::placeholder{color:#7f6d73;opacity:1}.recipient-password-form__visibility{color:#746368;cursor:pointer;background:0 0;border:0;border-radius:.8rem;flex:none;place-items:center;width:2.8rem;height:2.8rem;margin-inline-end:.4rem;display:grid}.recipient-password-form__visibility:hover{background:color-mix(in srgb, var(--gate-primary) 8%, white);color:var(--gate-primary)}.recipient-password-form__hint{color:#75656a;margin:0;font-size:.75rem}.recipient-password-form__error{color:#8c1930;background:#fff1f3;border:1px solid #b3263f2e;border-radius:.9rem;grid-template-columns:auto 1fr;align-items:start;gap:.6rem;margin-block-start:.3rem;padding:.8rem .9rem;font-size:.82rem;font-weight:650;line-height:1.42;animation:.24s ease-out both password-error-enter;display:grid}.recipient-password-form__error svg{width:1.05rem;margin-block-start:.08rem}.recipient-password-form__submit{background:linear-gradient(135deg, var(--gate-primary), color-mix(in srgb, var(--gate-primary) 76%, #411023));min-height:3.7rem;box-shadow:0 1rem 2rem color-mix(in srgb, var(--gate-primary) 25%, transparent);color:#fff;cursor:pointer;font:inherit;border:0;border-radius:1rem;grid-template-columns:auto 1fr auto;align-items:center;gap:.75rem;margin-block-start:.65rem;padding-inline:1.1rem;font-weight:820;transition:box-shadow .18s,filter .18s,transform .18s;display:grid}.recipient-password-form__submit span{text-align:center}.recipient-password-form__submit:hover:not(:disabled){box-shadow:0 1.2rem 2.4rem color-mix(in srgb, var(--gate-primary) 34%, transparent);filter:saturate(1.08)brightness(1.04);transform:translateY(-2px)}.recipient-password-form__submit:active:not(:disabled){transform:translateY(0)}.recipient-password-form__submit:disabled{cursor:not-allowed;opacity:.72}.recipient-password-gate[data-state=checking] .recipient-password-form__submit{opacity:1}.recipient-password-form__visibility:focus-visible,.recipient-password-form__submit:focus-visible,.recipient-password-card__brand:focus-visible{outline:.2rem solid var(--gate-primary);outline-offset:.18rem}.recipient-password-form__spinner{animation:.8s linear infinite password-spinner}.recipient-password-form__spinner circle{opacity:.28}.recipient-password-card__trust{border-block-start:1px solid #e8dedb;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;margin-block-start:1.25rem;padding-block-start:1.1rem;display:grid}.recipient-password-card__trust span{color:#75666a;align-items:center;gap:.45rem;font-size:.7rem;font-weight:700;line-height:1.3;display:flex}.recipient-password-card__trust svg{fill:none;width:1rem;stroke:var(--gate-primary);stroke-linecap:round;stroke-linejoin:round;stroke-width:1.9px;flex:none}@keyframes password-card-enter{0%{opacity:0;transform:translateY(1.5rem)scale(.975)}}@keyframes password-error-enter{0%{opacity:0;transform:translateY(-.3rem)}}@keyframes password-spinner{to{transform:rotate(1turn)}}@media (width<=35rem){.recipient-password-gate{place-items:center;gap:.7rem;padding-block-start:max(2rem, env(safe-area-inset-top));padding-block-end:max(.75rem, env(safe-area-inset-bottom));padding-inline:.75rem}.recipient-password-card{border-radius:1.45rem;padding:1.3rem}.recipient-password-card__brand{margin-block-end:1.15rem}.recipient-password-card__lock{width:3.5rem;height:3.5rem;margin-block:.4rem 1.2rem}.recipient-password-card h1{font-size:clamp(1.85rem,9vw,2.35rem)}.recipient-password-card__intro{margin-block:.75rem 1.2rem}.recipient-password-card__trust{grid-template-columns:1fr}}.recipient-password-card__success{grid-template-columns:minmax(0,1fr);align-content:center;gap:1rem;min-width:0;min-height:13rem;padding-block:1rem .5rem;animation:.4s ease-out both password-success-enter;display:grid}.recipient-password-card__success-line{background:color-mix(in srgb, var(--gate-primary) 12%, transparent);border-radius:2px;height:2px;overflow:hidden}.recipient-password-card__success-line span{background:var(--gate-primary);transform-origin:0;height:100%;animation:1.65s linear both password-unlock-progress;display:block}[dir=rtl] .recipient-password-card__success-line span{transform-origin:100%}.recipient-password-gate[data-state=unlocking] .recipient-password-card{animation:1.65s cubic-bezier(.2,.8,.2,1) both password-card-unlock}.recipient-password-gate[data-state=unlocking] .recipient-password-card__lock>svg{animation:.65s cubic-bezier(.2,.8,.2,1) both password-seal-unlock}.recipient-password-gate[data-state=unlocking] .recipient-password-card__seal-ring{animation:.9s ease-out both password-seal-ring}@keyframes password-light-drift{to{transform:translate(12%,8%)scale(1.12)}}@keyframes password-ribbon-sway{0%{transform:translate(-1%)rotate(-2deg)}to{transform:translate(1%,-2%)rotate(2deg)}}@keyframes password-star-drift{0%{opacity:.2;transform:translateY(8px)}to{opacity:.65;transform:translateY(-14px)}}@keyframes password-unlock-bloom{0%{opacity:0;transform:scale(.7)}40%{opacity:1}to{opacity:.4;transform:scale(1.3)}}@keyframes password-unlock-spark{0%{opacity:0;transform:rotate(var(--spark-angle)) translateY(70px)}20%{opacity:.85}to{opacity:0;transform:rotate(var(--spark-angle)) translateY(var(--spark-distance)) rotate(80deg)}}@keyframes password-card-unlock{0%{opacity:1;transform:scale(1)}20%,75%{opacity:1;transform:translateY(-4px)scale(1.012)}to{opacity:0;transform:translateY(-12px)scale(1.025)}}@keyframes password-seal-unlock{0%{opacity:0;transform:translateY(5px)scale(.8)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes password-seal-ring{to{opacity:0;transform:scale(1.7)}}@keyframes password-unlock-progress{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes password-success-enter{0%{opacity:0;transform:translateY(6px)}}.recipient-access-entrance{animation:.6s ease-out both password-experience-enter}@keyframes password-experience-enter{0%{opacity:0}to{opacity:1}}[dir=rtl] .recipient-password-form__submit svg:last-child{transform:scaleX(-1)}@media (prefers-reduced-motion:reduce){.recipient-access-entrance{animation:none}.recipient-password-gate *,.recipient-password-gate :before,.recipient-password-gate :after{transition:none!important;animation:none!important}.recipient-password-gate__celebration{display:none}.recipient-password-form__submit:hover:not(:disabled),.recipient-password-form__control:focus-within{transform:none}}
