@charset "UTF-8";

.fa-auth,.fa-dialog,.fa-header{color:var(--ink,#342b27);font-family:var(--sans,-apple-system,BlinkMacSystemFont,"PingFang SC",sans-serif)}
.fa-auth{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(310px,.88fr);gap:10%;align-items:center;max-width:1120px;margin:0 auto;padding:64px 0 76px;min-height:calc(100dvh - 175px)}
.fa-kicker{font-size:10px;line-height:1.4;letter-spacing:2.4px;font-weight:600;color:var(--red,#914839)}
.fa-auth-story h1{font:500 clamp(36px,4.5vw,58px)/1.35 var(--serif,"Songti SC",serif);letter-spacing:-1.5px;margin:19px 0 18px}
.fa-auth-story h1 em{font-style:normal;color:var(--red,#914839)}
.fa-auth-story>p{max-width:355px;font-size:14px;line-height:2;color:#817163;margin:0 0 28px}
.fa-auth-photo{width:100%;height:230px;background:url("assets/family-memories.png") 51% 49%/150% auto;border:1px solid #e2d7c9;filter:saturate(.78)}
.fa-auth-caption{font:14px/1.8 var(--serif,"Songti SC",serif);color:#8b796a;display:block;margin-top:11px}
.fa-auth-card{background:var(--white,#fffdf9);border:1px solid var(--line,#e4dcd0);padding:34px 32px;box-shadow:0 10px 35px #68462905}
.fa-auth-card h2{font:500 29px/1.4 var(--serif,"Songti SC",serif);margin:10px 0 9px;outline:none}
.fa-lead{font-size:13px;color:#8a786a;line-height:1.9;margin:0 0 25px}
.fa-invitation-note{border-left:2px solid var(--red,#914839);background:#f6ebe0;padding:12px 14px;margin:17px 0 20px;font-size:12px;line-height:1.8;color:#826b59}
.fa-invitation-note strong{font-weight:600;color:var(--red,#914839)}
.fa-invitation-note p{margin:5px 0 0}
.fa-invitation-note code{font-family:inherit;font-weight:600;letter-spacing:.6px;color:#664b39}
.fa-invitation-note .fa-text-button{margin-top:5px}
.fa-local-notice{font-size:12px;line-height:1.8;padding:10px 12px;margin:12px 0;background:#f4eadb;border:1px solid #e2d3bf;color:#80654f}
.fa-field{display:flex;flex-direction:column;gap:7px;position:relative;font-size:13px;color:#786759;margin:0 0 17px;min-width:0;line-height:1.6}
.fa-field input,.fa-field select,.fa-field textarea{box-sizing:border-box;width:100%;min-width:0;border:1px solid var(--line,#e4dcd0);background:#faf7f0;padding:11px 12px;border-radius:2px;color:var(--ink,#342b27);font:14px/1.5 var(--sans,-apple-system,BlinkMacSystemFont,"PingFang SC",sans-serif);min-height:45px;outline-offset:3px}
.fa-field input::placeholder,.fa-field textarea::placeholder{color:#a28f7e;opacity:1}
.fa-field textarea{resize:vertical;min-height:86px}
.fa-field select{cursor:pointer;padding-right:30px}
.fa-field input[readonly]{background:#f3ece1;cursor:text}
.fa-field input:disabled,.fa-field select:disabled{color:#8b8178;background:#f0ece5}
.fa-field input:focus-visible,.fa-field select:focus-visible,.fa-field textarea:focus-visible,.fa-button:focus-visible,.fa-text-button:focus-visible,.fa-auth-switch button:focus-visible,.fa-header-button:focus-visible,.fa-close:focus-visible,.fa-password-toggle:focus-visible,.fa-additions summary:focus-visible,.fa-signout:focus-visible{outline:2px solid var(--red,#914839);outline-offset:3px}
.fa-password{position:relative;display:block}
.fa-password input{padding-right:62px}
.fa-password-toggle{position:absolute;right:3px;top:3px;bottom:3px;padding:0 11px;min-width:48px;border:0;background:transparent;font-size:12px;color:var(--red,#914839)}
.fa-button{border:1px solid #d8cbbb;background:transparent;color:var(--ink,#342b27);font:13px/1.5 var(--sans,-apple-system,BlinkMacSystemFont,"PingFang SC",sans-serif);min-height:44px;padding:10px 18px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:16px;white-space:nowrap;transition:background .16s,border-color .16s;border-radius:2px}
.fa-button:hover{background:#f3e9df;border-color:var(--red,#914839)}
.fa-button.fa-primary{color:#fffdf9;background:var(--red,#914839);border-color:var(--red,#914839)}
.fa-button.fa-primary:hover{background:var(--red-deep,#783a2e)}
.fa-button:disabled,.fa-auth button:disabled{opacity:.55;cursor:wait}
.fa-auth-submit{width:100%;justify-content:space-between;margin-top:6px}
.fa-auth-switch{margin:24px 0 0;padding-top:19px;border-top:1px solid var(--line,#e4dcd0);font-size:12px;color:#8a7869}
.fa-auth-switch button{padding:7px 10px;border:0;background:none;color:var(--red,#914839);font:inherit;min-height:36px}
.fa-auth-switch button:hover{text-decoration:underline;text-underline-offset:4px}
.fa-auth-config{margin:24px 0 0;padding-top:19px;border-top:1px solid var(--line,#e4dcd0);font-size:12px;line-height:1.9;color:#796757}
.fa-auth-config p{margin:0 0 5px}
.fa-auth-config [role="alert"]{color:#a5352a}
.fa-auth-config .fa-text-button{margin-top:2px}
.fa-error,.fa-status{font-size:12px;line-height:1.8;margin:0;overflow-wrap:anywhere}
.fa-error{color:#a5352a}
.fa-status{color:#73624e}
.fa-error:empty,.fa-status:empty{display:none}
.fa-auth .fa-error,.fa-auth .fa-status{margin:0 0 12px}
.fa-header{display:flex;align-items:center;min-width:0}
.fa-header-button{display:flex;align-items:center;gap:9px;min-height:44px;padding:5px 0 5px 5px;background:none;border:0;color:inherit;text-align:left;border-radius:3px;max-width:230px}
.fa-header-avatar{flex:none;width:33px;height:33px;border:1px solid #d5c3ab;background:#e9dfcf;display:grid;place-items:center;border-radius:50%;font:19px var(--serif,"Songti SC",serif);color:var(--red,#914839)}
.fa-header-label{font-size:13px;line-height:1.45;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fa-header-label small{font-size:10px;display:block;color:#8a7765;max-width:165px;overflow:hidden;text-overflow:ellipsis;margin-top:3px}
.fa-header-chevron{font-size:16px;flex:none;color:#9b8570;padding-left:3px}
.fa-header-button:hover .fa-header-label{color:var(--red,#914839)}
.fa-dialog{box-sizing:border-box;width:min(720px,calc(100vw - 32px));max-height:88dvh;margin:auto;padding:29px 32px;border:1px solid var(--line,#e4dcd0);background:var(--white,#fffdf9);color:var(--ink,#342b27);box-shadow:0 24px 90px #35241935;overflow:auto;scrollbar-width:thin;scrollbar-color:#c7b29b #faf6ee}
.fa-dialog::backdrop{background:#30231db3;backdrop-filter:blur(3px)}
.fa-dialog-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:10px}
.fa-dialog-header h2{font:500 29px/1.4 var(--serif,"Songti SC",serif);margin:7px 0 4px}
.fa-dialog-header p{font-size:12px;color:#8e7c6b;margin:0;overflow-wrap:anywhere}
.fa-close{width:38px;height:38px;flex:none;display:grid;place-items:center;border:1px solid var(--line,#e4dcd0);background:transparent;border-radius:2px;font:25px/1 var(--sans,sans-serif);color:#7d6756;cursor:pointer}
.fa-close:hover{background:#f3e9de;border-color:#b28a6f}
.fa-feedback{margin:14px 0;position:sticky;top:-29px;z-index:1;background:var(--white,#fffdf9)}
.fa-feedback:has(.fa-error:not(:empty)),.fa-feedback:has(.fa-status:not(:empty)){padding:10px 12px;border-left:2px solid #b08b64;background:#f6ede2}
.fa-section{padding:22px 0;border-top:1px solid var(--line,#e4dcd0)}
.fa-section-heading{margin-bottom:16px}
.fa-section-heading h3,.fa-additions h3{font:500 20px/1.5 var(--serif,"Songti SC",serif);margin:0}
.fa-section-heading>p{font-size:12px;color:#8c7865;line-height:1.8;margin:6px 0 0}
.fa-inline-form{display:flex;align-items:flex-end;gap:11px}
.fa-inline-form .fa-field{margin-bottom:0}
.fa-grow{flex:1}
.fa-inline-form .fa-button{margin-bottom:0;flex:none}
.fa-binding{margin-top:19px}
.fa-help,.fa-empty{font-size:12px;line-height:1.9;color:#8c7867;margin:11px 0 0}
.fa-empty{background:#f7f0e6;padding:13px 15px;margin:0}
.fa-role{display:inline-block;padding:1px 7px;color:var(--red,#914839);background:#f0e2d5;border-radius:2px;margin-left:3px}
.fa-optional{display:inline;color:#aa9481;font-size:10px}
.fa-additions{border-top:1px solid var(--line,#e4dcd0);padding:19px 0}
.fa-additions summary{list-style:none;display:flex;align-items:center;justify-content:space-between;cursor:pointer;font-size:14px;min-height:35px;color:#6d5544}
.fa-additions summary::-webkit-details-marker{display:none}
.fa-additions summary>span{font-size:20px;color:#a08266;transition:transform .15s}
.fa-additions[open] summary>span{transform:rotate(45deg)}
.fa-additions-grid{display:grid;grid-template-columns:1fr 1fr;gap:27px;margin-top:23px}
.fa-additions-grid>form+form{border-left:1px solid var(--line,#e4dcd0);padding-left:27px}
.fa-additions h3{font-size:18px;margin:0 0 17px}
.fa-additions .fa-help{margin-top:0;margin-bottom:18px}
.fa-invite-result{border:1px solid #dfcfba;background:#f8f0e5;padding:17px;margin-top:16px}
.fa-invite-result .fa-field{margin-bottom:11px}
.fa-invite-result [data-fa-invite-code]{font:500 23px/1.4 var(--serif,"Songti SC",serif);letter-spacing:3px;color:var(--red,#914839)}
.fa-inline-actions{display:flex;align-items:center;gap:13px;flex-wrap:wrap}
.fa-small{min-height:38px;font-size:12px;padding:7px 13px}
.fa-text-button{border:0;background:none;font:12px var(--sans,sans-serif);min-height:38px;padding:7px 0;color:var(--red,#914839);cursor:pointer}
.fa-text-button:hover{text-decoration:underline;text-underline-offset:4px}
.fa-invite-link{margin-top:12px}
.fa-invite-link input{font-size:11px}
.fa-dialog-footer{border-top:1px solid var(--line,#e4dcd0);padding-top:17px;margin-top:1px;display:flex;justify-content:space-between;gap:15px;align-items:center;font-size:11px;color:#a08b77}
.fa-signout{border:0;background:none;font:12px var(--sans,sans-serif);min-height:40px;padding:6px 0;color:var(--red,#914839);cursor:pointer}
.fa-signout:hover{text-decoration:underline;text-underline-offset:4px}
@media(max-width:1000px){.fa-auth{gap:6%;grid-template-columns:1fr 1fr;padding:46px 0}.fa-auth-story h1{font-size:43px}.fa-auth-card{padding:28px 24px}.fa-auth-photo{height:205px}.fa-header-button{max-width:190px}.fa-header-label small{max-width:125px}}
@media(max-width:650px){.fa-auth{grid-template-columns:1fr;gap:26px;padding:32px 0 44px;min-height:0;max-width:440px}.fa-auth-story h1{font-size:34px;letter-spacing:-.8px;margin:13px 0 12px}.fa-auth-story h1 br{display:none}.fa-auth-story>p{font-size:13px;max-width:none;margin:0}.fa-auth-photo,.fa-auth-caption{display:none}.fa-auth-card{padding:26px 22px}.fa-auth-card h2{font-size:26px}.fa-field input,.fa-field select,.fa-field textarea{font-size:16px}.fa-header-button{max-width:182px;gap:7px}.fa-header-label{font-size:12px}.fa-header-label small{font-size:9px;max-width:118px}.fa-header-chevron{display:none}.fa-dialog{width:calc(100vw - 20px);max-height:92dvh;padding:24px 20px}.fa-dialog-header h2{font-size:26px}.fa-feedback{top:-24px}.fa-additions-grid{grid-template-columns:1fr;gap:22px}.fa-additions-grid>form+form{border-left:0;border-top:1px solid var(--line,#e4dcd0);padding:22px 0 0}.fa-inline-form{gap:9px}.fa-inline-form .fa-button{padding:10px 12px;font-size:12px}.fa-dialog-footer>span{max-width:65%}}
@media(prefers-reduced-motion:reduce){.fa-auth *,.fa-dialog *,.fa-header *{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
