button.textlink{font:inherit;cursor:pointer;background:0 0;border:0;min-height:44px;font-weight:600;text-decoration:underline}button.textlink[disabled]{color:var(--ink-3);cursor:not-allowed}.fp-form{gap:20px;display:grid}.fp-kicker{font-size:32px}.fp-year{max-width:140px}.fp-error{color:var(--rose-dark);margin:0;font-weight:600}.fp-done{background:var(--wall);border-left:4px solid var(--rose);margin:0;padding:16px 18px}.fp-pick{cursor:pointer;width:fit-content;position:relative;overflow:hidden}.fp-pick input{opacity:0;cursor:pointer;font-size:0;position:absolute;inset:0}.fp-pick:focus-within{outline:3px solid var(--rose);outline-offset:3px}.fp-thumbs{flex-wrap:wrap;gap:12px;margin:0;padding:0;list-style:none;display:flex}.fp-thumbs img{object-fit:cover;width:120px;height:120px;display:block}.fp-link{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.fp-link .input{flex:240px;min-width:0}.fp-link .btn{min-height:48px;padding:10px 22px;font-size:16px}.fp-notes{margin:0;padding:0;list-style:none}.fp-notes li{border-top:1px solid var(--line-strong);justify-content:space-between;gap:16px;padding:14px 0;display:flex}.fp-notes li>div{overflow-wrap:anywhere;gap:2px;min-width:0;display:grid}.fp-preview-bar{z-index:2;background:var(--ink);color:var(--on-night);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:10px 16px;display:flex;position:sticky;top:0}.fp-preview-bar .btn{background:var(--on-rose);min-height:44px;color:var(--ink);padding:8px 20px;font-size:16px}.fp-small{min-height:48px;padding:10px 22px;font-size:16px}.fp-date{max-width:220px}.fp-words{border:1px solid var(--line-strong);white-space:pre-line;overflow-wrap:anywhere;background:#fff;margin:0;padding:14px 16px}.fo-cover{text-align:center;background:var(--rose);min-height:100dvh;color:var(--on-rose);flex-direction:column;justify-content:center;align-items:center;gap:28px;margin:-32px calc(50% - 50vw) -72px;padding:40px 20px;font-size:24px;display:flex}.fo-cover p{margin:0}.fo-line{max-width:520px;font-size:28px;font-weight:500;line-height:1.25}.fo-wait{max-width:520px;font-size:26px;font-weight:600;line-height:1.25}.fo-cover .btn{min-width:220px;min-height:64px;font-size:22px}.fo-cover .envelope{width:min(340px,84vw)}.fo-opening{animation:.75s ease-in forwards fo-lift}.fo-opening:before{transform-origin:top;animation:.45s ease-out forwards fo-flap}.fo-opening .seal{animation:.25s ease-out forwards fo-fade}@keyframes fo-flap{to{transform:scaleY(-1)}}@keyframes fo-fade{to{opacity:0}}@keyframes fo-lift{60%{opacity:1;transform:none}to{opacity:0;transform:translateY(-24px)scale(1.04)}}.fo-open:focus{outline:none}.fo-signed{color:var(--ink-2);flex-wrap:wrap;justify-content:center;align-items:center;gap:6px 26px;padding-top:18px;display:flex}.fo-signed .sig{animation:.7s ease-out backwards fo-sign}@keyframes fo-sign{0%{clip-path:inset(-20% 100% -20% -5%);opacity:.3}to{clip-path:inset(-20% -5%);opacity:1}}@media (prefers-reduced-motion:reduce){.fo-opening,.fo-opening:before,.fo-opening .seal,.fo-signed .sig{animation:none}}.bk-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:20px;display:grid}.bk-page{gap:6px;margin:0;display:grid}.bk-page canvas{width:100%;height:auto;box-shadow:0 0 0 1px var(--line-strong)}.bk-cover{max-width:720px}.fb-page{max-width:720px;margin:0 auto;padding:32px 20px 72px}.fb-state{text-align:center;padding-block:96px;font-size:24px}.fb{color:var(--ink);font-size:24px;line-height:1.5}.fb-head{text-align:center;border-bottom:1px solid var(--line-strong);padding-bottom:32px}.fb-head h1{font-family:var(--hand);color:var(--rose);letter-spacing:0;font-size:clamp(44px,9vw,72px);font-weight:600;line-height:1.05}.fb-head p{color:var(--ink-2);margin:16px 0 0}.fb h2{padding-top:48px;font-size:34px}.fb-note{border-bottom:1px solid var(--line);break-inside:avoid;padding-block:32px}.fb-note img{width:100%;height:auto;margin-bottom:16px;display:block}.fb-year{color:var(--rose);margin:0 0 8px;font-weight:700}.fb-words{white-space:pre-line;overflow-wrap:anywhere;margin:0}.fb-from{font-family:var(--hand);color:var(--ink-2);margin:12px 0 0;font-size:34px;font-weight:600;line-height:1.1}.fb-foot{text-align:center;justify-items:center;gap:16px;padding-top:40px;display:grid}.fb-foot p{color:var(--ink-3);margin:0}@media print{.fb-foot,.fp-preview-bar,.fo-signed{display:none}.fb-page{max-width:none;padding:0}.fb{font-size:16pt}.fb-note img{width:auto;max-width:100%;max-height:5in}}
