@import "https://fonts.googleapis.com/css2?family=Pacifico&display=swap";
:root{--blue:#2058a5;--ink:#26364e;--muted:#77869a;--line:#dfe8f2}*{box-sizing:border-box}body{color:var(--ink);background:#f3f8fc;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Arial,sans-serif}button,input,textarea,select{font:inherit}button{cursor:pointer}.header{-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);z-index:20;background:#fffffff0;border-bottom:1px solid #e5edf5;justify-content:space-between;align-items:center;height:70px;padding:0 38px;display:flex;position:sticky;top:0}.brand{align-items:center;gap:11px;display:flex}.brand img{object-fit:contain;width:45px;height:45px}.brand b{color:var(--blue);font-size:14px}.brand small{letter-spacing:1.5px;color:#8996a8;font-size:9px;display:block}.account{color:#697a90;align-items:center;gap:9px;font-size:12px;display:flex}.avatar{width:31px;height:31px;color:var(--blue);background:#edf4fd;border-radius:50%;place-items:center;font-weight:800;display:grid}.hero{text-align:center;background:linear-gradient(135deg,#edf7ff,#fff 48%,#eaf5fd);justify-content:center;align-items:center;min-height:455px;padding:55px 20px;display:flex;position:relative;overflow:hidden}.hero:before,.hero:after{content:"✦";color:#2058a529;font-size:80px;position:absolute}.hero:before{top:65px;left:11%}.hero:after{font-size:50px;bottom:65px;right:12%}.heroInner{z-index:1;max-width:760px;position:relative}.eyebrow{letter-spacing:4px;color:#6b84a5;text-transform:uppercase;font-size:10px}.hero h1{color:#28578f;margin:15px 0;font:500 55px/1.08 Georgia,serif}.hero p{color:#687c95;max-width:620px;margin:0 auto 24px;font:16px/1.8 Georgia,serif}.btn{background:var(--blue);color:#fff;border:0;border-radius:999px;padding:13px 24px;font-weight:700;box-shadow:0 10px 25px #2058a533}.btn.light{color:var(--blue);border:1px solid var(--line);box-shadow:none;background:#fff}.wrap{z-index:3;max-width:1120px;margin:-42px auto 60px;padding:0 20px;position:relative}.panel{background:#fffffff0;border:1px solid #e0e9f2;border-radius:25px;padding:29px;box-shadow:0 18px 55px #2a567e1a}.panel h2{color:#28578f;margin:0 0 7px;font:500 28px Georgia,serif}.sub{color:#7e8da1;margin:0 0 20px;font-size:12px}.steps{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.step{color:#647993;background:#f4f9ff;border:1px solid #e5eef8;border-radius:999px;padding:10px 16px;font-size:11px}.step b{color:var(--blue);margin-right:4px}.write{margin-top:18px}.grid{grid-template-columns:1fr 1fr;gap:14px;display:grid}label{letter-spacing:.6px;color:#62738a;margin-bottom:7px;font-size:10px;font-weight:800;display:block}select,input,textarea{width:100%;color:var(--ink);background:#fff;border:1px solid #dbe6f1;border-radius:13px;outline:none;padding:12px}textarea{resize:vertical;min-height:150px;line-height:1.7}.full{grid-column:1/-1}.formfoot{color:#8794a6;justify-content:space-between;align-items:center;margin-top:12px;font-size:11px;display:flex}.actions{gap:8px;display:flex}.hidden{display:none!important}.inbox{margin-top:18px}.inboxHead{justify-content:space-between;align-items:end;margin-bottom:17px;display:flex}.inboxHead span{color:#8b98a9;font-size:11px}.cards{grid-template-columns:repeat(3,1fr);gap:18px;display:grid}.envelope{perspective:1000px;cursor:pointer;height:235px;position:relative}.envBody{background:linear-gradient(145deg,#fbfdff,#eaf3fc);border:1px solid #d5e4f1;border-radius:17px;position:absolute;inset:0;overflow:hidden;box-shadow:0 12px 30px #2c55781f}.envBody:before{content:"";background:linear-gradient(145deg,#0000 49%,#2058a51a 50%,#0000 51%),linear-gradient(35deg,#0000 49%,#2058a512 50%,#0000 51%);position:absolute;inset:0}.flap{clip-path:polygon(0 0,100% 0,50% 82%);z-index:2;transform-origin:top;background:#f4f8fc;border-bottom:1px solid #d7e5f1;height:115px;transition:transform .55s;position:absolute;top:0;left:0;right:0}.seal{color:#fff;z-index:3;background:radial-gradient(circle,#d6a94f 0 34%,#bd8e37 36% 43%,#e0bb69 45%);border-radius:50%;place-items:center;width:48px;height:48px;font-size:19px;transition:all .4s;display:grid;position:absolute;top:78px;left:50%;transform:translate(-50%)}.envText{text-align:center;z-index:1;position:absolute;bottom:19px;left:20px;right:20px}.envText small{color:#7d8da2;letter-spacing:1.5px;text-transform:uppercase;font-size:9px;display:block}.envText b{color:#315d91;margin-top:5px;font:500 20px Georgia,serif;display:block}.envelope:hover .flap{transform:rotateX(18deg)}.empty{text-align:center;color:#8b99aa;border:1px dashed #d5e3ef;border-radius:17px;grid-column:1/-1;padding:40px;font-size:12px}.modal{-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);z-index:100;opacity:0;background:#19304b61;place-items:center;padding:18px;transition:opacity .3s;display:grid;position:fixed;inset:0}.modal.show{opacity:1}.stage{place-items:center;width:min(730px,100%);height:min(720px,92vh);display:grid;position:relative}.openEnv{perspective:1000px;width:min(570px,88%);height:300px;transition:opacity .3s,transform .3s;position:absolute;bottom:65px}.openEnv.hide{opacity:0;transform:translateY(20px)scale(.96)}.bigEnv{background:linear-gradient(145deg,#ead9ba,#c8a876);border-radius:16px;position:absolute;inset:0;overflow:hidden;box-shadow:0 25px 60px #1c314640}.bigEnv:before{content:"";background:linear-gradient(35deg,#0000 49.5%,#704d2338 50%,#0000 50.5%),linear-gradient(145deg,#0000 49.5%,#704d232e 50%,#0000 50.5%);position:absolute;inset:0}.bigFlap{clip-path:polygon(0 0,100% 0,50% 100%);transform-origin:top;z-index:5;background:linear-gradient(145deg,#f1e3c8,#d9bf94);height:190px;transition:transform 1s cubic-bezier(.2,.8,.2,1);position:absolute;inset:0 0 auto}.bigSeal{z-index:7;color:#f5d7b2;background:radial-gradient(circle,#8b2e27 0 42%,#6e201c 44%);border-radius:50%;place-items:center;width:65px;height:65px;font-size:24px;transition:opacity .35s;display:grid;position:absolute;top:146px;left:50%;transform:translate(-50%);box-shadow:0 8px 20px #481d1940}.openEnv.open .bigFlap{transform:rotateX(180deg)}.openEnv.open .bigSeal{opacity:0}.letter{opacity:0;z-index:6;background:radial-gradient(circle at 87% 9%,#b5893640 0 2%,#0000 2.5%),radial-gradient(circle at 12% 88%,#d6a94f2b 0 7%,#0000 7.5%),linear-gradient(#fffef8,#f6f1e5);border-radius:5px;width:min(590px,88%);height:min(650px,84vh);padding:55px 55px 45px;transition:transform 1s cubic-bezier(.15,.8,.2,1) .45s,opacity .5s .45s;position:absolute;top:30px;overflow:auto;transform:translateY(210px)scale(.75);box-shadow:0 25px 65px #1e364e3d}.openEnv.open+.letter{opacity:1;transform:translateY(0)scale(1)}.letterDecor{opacity:.45;font-size:65px;position:absolute;top:10px;right:16px;transform:rotate(15deg)}.letterDecor2{opacity:.3;font-size:58px;position:absolute;bottom:18px;left:20px}.letterLogo{object-fit:contain;width:48px;height:48px;margin:0 auto 10px;display:block}.letterLabel{text-align:center;letter-spacing:2.4px;color:#8b7b62;font-size:9px}.letter h3{text-align:center;color:#75423c;margin:11px 0 27px;font:500 35px Georgia,serif}.letterTo{color:#28384d;margin-bottom:18px;font:italic 17px Georgia,serif}.letterMessage{color:#2f3d4e;white-space:pre-wrap;font:16px/1.9 Georgia,serif}.letterFrom{text-align:right;color:#75423c;margin-top:28px;font:italic 17px Georgia,serif}.letterFrom small{color:#8993a0;margin-top:5px;font:11px Arial;display:block}.close{color:#53677f;z-index:120;background:#ffffffd9;border:0;border-radius:50%;width:37px;height:37px;font-size:21px;position:absolute;top:12px;right:12px}.admin{margin-top:18px}.adminHead{justify-content:space-between;align-items:center;margin-bottom:15px;display:flex}.adminRows{gap:8px;display:grid}.row{background:#f8fbff;border:1px solid #e2ebf4;border-radius:12px;grid-template-columns:130px 130px 1fr 110px;align-items:center;gap:9px;padding:12px;font-size:11px;display:grid}.row b{color:var(--blue)}.row .msg{color:#6e7e92;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.row time{text-align:right;color:#9aa6b4}.footer{text-align:center;color:#9ba8b8;padding:12px 20px 35px;font-size:10px}@media (max-width:760px){.header{padding:0 15px}.brand small{display:none}.hero h1{font-size:41px}.grid{grid-template-columns:1fr}.full{grid-column:auto}.cards{grid-template-columns:1fr}.panel{padding:22px}.letter{padding:45px 28px}.letter h3{font-size:28px}.letterMessage{font-size:14px}.row{grid-template-columns:1fr 1fr}.row .msg,.row time{text-align:left;grid-column:1/-1}}body{font-family:Inter,sans-serif;background:radial-gradient(circle at 10% 10%,#fff 0 5%,#0000 25%),linear-gradient(135deg,#eef8ff,#f7fbfe 50%,#e5f3fb)!important}.panel,.card{border-radius:26px!important;box-shadow:0 24px 70px #315b7318!important}button{transition:all .25s}button:hover{transform:translateY(-2px)}html{scroll-behavior:smooth}body{font-family:Inter,Segoe UI,Arial,sans-serif}h1,h2,h3{font-family:Cormorant Garamond,Georgia,serif!important}.loginHero{min-height:calc(100svh - 70px)}.loginHint{color:#77869a;max-width:340px;margin:18px auto 0;font-size:11px;line-height:1.7}.logout{color:var(--blue);background:0 0;border:0;padding:8px}.write{scroll-margin-top:90px}.compactSub{margin:4px 0 0}.envelope{width:100%;text-align:inherit;background:0 0;border:0;padding:0;display:block}.openLabel{margin-top:7px}.admin h2{font-size:24px}.success{text-align:center;padding:30px}.successStar{color:#d0a44a;font-size:35px}.error{color:#9a3434;background:#fff4f4;border:1px solid #e8b8b8;border-radius:14px;margin-top:18px;padding:16px;font-size:13px}.overLimit{color:#b03232}button:disabled{opacity:.5;cursor:not-allowed;transform:none}button:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible{outline-offset:4px;outline:3px solid #6a9ed3}.letterContent{z-index:2;position:relative}.letterMessage{overflow-wrap:anywhere}.letterDialog{width:100vw;max-width:none;height:100dvh;max-height:none;color:var(--ink);background:0 0;border:0;margin:0;padding:18px;overflow:auto}.letterDialog[open]{place-items:center;display:grid}.letterDialog::backdrop{-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);background:#19304b61}.letterDialog .letter{animation:1.4s both letter-rise}.letterDialog .bigFlap{animation:1s both flap-open}.letterDialog .bigSeal{animation:.4s both seal-fade}.appreciation{text-align:center;background:#fffc;border:1px solid #fff;border-radius:28px;max-width:1050px;margin:24px auto;padding:26px;box-shadow:0 24px 70px #315b7318}.appreciationLabel{letter-spacing:3px;opacity:.55;font-size:11px}.appreciation h2{margin:8px;font:600 40px/1.1 Georgia,serif}.appreciation p{color:#668196;max-width:620px;margin:auto;line-height:1.7}.progress{background:#e2eff6;border-radius:99px;max-width:520px;height:10px;margin:20px auto 8px;overflow:hidden}.progress>div{background:#6baed6;border-radius:99px;height:100%;transition:width .4s}.progressLabel{color:#6b8394;font-size:12px}@keyframes letter-rise{0%,25%{opacity:0;transform:translateY(210px)scale(.75)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes flap-open{0%{transform:rotateX(0)}to{transform:rotateX(180deg)}}@keyframes seal-fade{0%{opacity:1}to{opacity:0}}@media (max-width:760px){.account{gap:5px;font-size:10px}.brand b{font-size:12px}.brand{gap:6px}.appreciation{margin:24px 20px}.inboxHead{align-items:start;gap:10px}.inboxHead>span{white-space:nowrap}.adminHead,.formfoot{flex-wrap:wrap;gap:12px}.letterDialog .letter{width:94%;top:28px}.stage{height:calc(100dvh - 36px)}.letterDialog .letter{max-height:calc(100dvh - 90px)}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}.letterDialog .letter{opacity:1;transform:none}button:hover{transform:none}}.googleSignIn{color:#26364e;background:#fff;border:1px solid #dbe6f1;justify-content:center;align-items:center;gap:12px;display:inline-flex;box-shadow:0 8px 24px #2058a512}.hero .loginError{color:#9a3434;max-width:380px;margin:18px auto 0;font:12px/1.7 Segoe UI,Arial,sans-serif}.account>span{text-overflow:ellipsis;white-space:nowrap;max-width:240px;overflow:hidden}@media (max-width:760px){.account>span{max-width:105px}}.letterFields{border:0;min-width:0;margin:0;padding:0}.legacyNotice{color:#62738a;background:#fff;border:1px solid #dbe6f1;border-radius:18px;margin-top:18px;padding:18px;font-size:13px}.historyPagination{color:#62738a;justify-content:space-between;align-items:center;gap:10px;margin-top:18px;font-size:12px;display:flex}.envText b{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}@media (max-width:480px){.historyPagination .btn{padding:10px 14px}}.phoneSignIn{max-width:380px;margin:18px auto 0}.orDivider{color:#8b98a9;align-items:center;gap:10px;margin-bottom:12px;font-size:11px;display:flex}.orDivider:before,.orDivider:after{content:"";background:#dbe6f1;flex:1;height:1px}.phoneRow{gap:8px;display:flex}.phoneRow input{flex:1;min-width:0}.phoneRow .btn{white-space:nowrap;padding:12px 18px}.linkButton{color:var(--blue);background:0 0;border:0;padding:8px;font-size:12px;text-decoration:underline}.linkButton.danger{color:#b03232}.adminPage{gap:18px;margin-top:28px;display:grid}.adminPage .admin{margin-top:0}.adminForm{grid-template-columns:1fr 1fr 1fr auto;align-items:end;gap:12px;display:grid}.adminForm .sub,.adminForm .error{margin:0}.adminOk{color:#276b43;background:#effaf3;border:1px solid #bfe3cc;border-radius:14px;margin:0;padding:12px 16px;font-size:13px}.userTable{gap:8px;display:grid}.userRow{background:#f8fbff;border:1px solid #e2ebf4;border-radius:12px;grid-template-columns:1.2fr 1.6fr 1fr 80px;align-items:center;gap:10px;padding:10px 14px;font-size:13px;display:grid}.userRow>*{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.userRow b{color:var(--blue)}.userHeadRow{letter-spacing:.6px;color:#62738a;background:0 0;border:0;padding-block:0;font-size:10px;font-weight:800}@media (max-width:760px){.adminForm{grid-template-columns:1fr}.userRow{grid-template-columns:1fr 70px}.userRow>span:first-of-type,.userRow>span:nth-of-type(2){grid-column:1}.userHeadRow{display:none}.phoneRow{flex-direction:column}}:root{--blue:#1f4f96;--blue-2:#2f6fc4;--navy:#10284d;--gold:#c99a45;--gold-2:#e6c47f;--ink:#1d2b40;--muted:#6b7a90;--line:#e3eaf3;--paper:#fffdf8;--radius:22px;--shadow:0 1px 2px #10284d0a,0 12px 40px #10284d14}body{color:var(--ink);-webkit-font-smoothing:antialiased;font-size:15px;background:radial-gradient(1200px 600px at 100% -10%,#e4efff 0,#0000 60%),radial-gradient(900px 500px at -10% 30%,#fbf3e3 0,#0000 55%),#f6f8fc!important}::selection{background:#cfe0fb}.header{-webkit-backdrop-filter:saturate(1.6)blur(18px);backdrop-filter:saturate(1.6)blur(18px);background:#ffffffb8;border-bottom:1px solid #10284d0f;height:72px;padding:0 max(24px,50vw - 590px)}.brand img{border-radius:10px;width:40px;height:40px}.brand b{color:var(--navy);letter-spacing:-.01em;font-size:15px}.brand small{letter-spacing:2.2px;color:var(--gold);font-size:9.5px}.account{gap:10px;font-size:13px}.avatar{background:linear-gradient(135deg,var(--blue),var(--blue-2));color:#fff;width:36px;height:36px;font-size:14px;box-shadow:0 4px 12px #1f4f9640}.logout{background:0 0;font-size:13px;font-weight:600;text-decoration:none;color:var(--blue)!important;border-radius:999px!important;padding:8px 14px!important}.logout:hover{background:#eef3fb}a.logout{border:1px solid var(--line)}.btn{background:linear-gradient(135deg,var(--blue),var(--blue-2));letter-spacing:.01em;padding:13px 26px;font-size:14px;box-shadow:0 8px 22px #1f4f9647,inset 0 1px #ffffff2e}.btn:hover{box-shadow:0 12px 28px #1f4f9657}.btn.light{color:var(--blue);border:1px solid var(--line);background:#fff;box-shadow:0 1px 2px #10284d0d}.btn.light:hover{background:#f8fbff;border-color:#c9d8ec}.btn.wide{width:100%}label{letter-spacing:1px;color:#5d6d84;margin-bottom:8px;font-size:11px}select,input,textarea{border:1px solid var(--line);background:#fbfcfe;border-radius:14px;padding:13px 15px;font-size:15px;transition:border-color .2s,box-shadow .2s,background .2s}select:hover,input:hover,textarea:hover{border-color:#cbd9ea}select:focus,input:focus,textarea:focus{border-color:var(--blue-2);background:#fff;box-shadow:0 0 0 4px #2f6fc424}button:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible{outline:none;box-shadow:0 0 0 4px #2f6fc44d}.panel,.card{background:#fff;border:1px solid #10284d0f;padding:34px;border-radius:var(--radius)!important;box-shadow:var(--shadow)!important}.panel h2{color:var(--navy);letter-spacing:-.01em;font:600 32px/1.15 Cormorant Garamond,Georgia,serif}.sub{color:var(--muted);font-size:14px;line-height:1.6}.eyebrow{letter-spacing:3.5px;color:var(--gold);text-transform:uppercase;font-size:11px;font-weight:600}.hero:not(.loginHero){color:#fff;background:radial-gradient(600px 300px at 80% 20%,#e6c47f38,#0000 70%),radial-gradient(700px 400px at 10% 90%,#2f6fc473,#0000 70%),linear-gradient(135deg,#0f2749,#1c4586 60%,#2a63b3);min-height:420px;padding:70px 20px 100px}.hero:not(.loginHero):before,.hero:not(.loginHero):after{color:#e6c47f59}.hero:not(.loginHero) h1{color:#fff;letter-spacing:-.01em;font-size:62px;font-weight:600}.hero:not(.loginHero) p{color:#c9d8ef;font-family:Inter,sans-serif;font-size:17px}.hero:not(.loginHero) .eyebrow{color:var(--gold-2)}.wrap{max-width:1080px;margin-top:-64px}.steps{grid-template-columns:repeat(4,1fr);gap:12px;margin-top:6px;display:grid}.step{text-align:left;border:1px solid var(--line);color:var(--ink);background:linear-gradient(#f8fbff,#f2f6fc);border-radius:16px;flex-direction:column;align-items:flex-start;gap:6px;padding:16px 18px;font-size:14px;font-weight:500;display:flex}.step b{color:var(--gold);margin:0;font:600 26px/1 Cormorant Garamond,Georgia,serif}.write .grid{gap:18px}.write textarea{background:repeating-linear-gradient(transparent 0 30px,#eef2f8 30px 31px),var(--paper);background-attachment:local;border-color:#ece5d6;min-height:190px;padding:16px 20px;font:17px/1.8 Georgia,serif}.write textarea:focus{background-color:#fffefb;background-image:repeating-linear-gradient(#0000 0 30px,#eef2f8 30px 31px),none;background-position:0 0,0 0;background-repeat:repeat,repeat;background-size:auto,auto;background-attachment:local;background-origin:padding-box,padding-box;background-clip:border-box,border-box}.formfoot{margin-top:16px;font-size:13px}.overLimit{font-weight:700}.success h2{margin-top:8px}.successStar{background:linear-gradient(135deg,var(--gold-2),var(--gold));color:#0000;-webkit-background-clip:text;background-clip:text;font-size:44px}.error{border-radius:14px;font-size:14px}.inboxHead span,.adminHead>span{color:var(--blue);background:#eef3fb;border-radius:999px;padding:6px 12px;font-size:12px;font-weight:600}.cards{gap:20px}.envelope{height:220px;transition:transform .35s cubic-bezier(.2,.8,.2,1)}.envelope:hover{transform:translateY(-6px)}.envBody{background:linear-gradient(160deg,#fffdf7,#f4ead6);border:1px solid #eadfc8;border-radius:18px;box-shadow:0 10px 30px #60481e1f}.envBody:before{background:linear-gradient(150deg,#0000 49.4%,#96703224 50%,#0000 50.6%),linear-gradient(30deg,#0000 49.4%,#9670321a 50%,#0000 50.6%)}.flap{background:linear-gradient(#fbf4e6,#f1e4c9);border-bottom-color:#e6d6b5;height:108px}.seal{color:#f5d7b2;background:radial-gradient(circle at 35% 30%,#b8453b,#8b2e27 55%,#6e201c);width:46px;height:46px;top:76px;box-shadow:0 6px 14px #6e201c59}.envelope:hover .seal{transform:translate(-50%)scale(1.08)rotate(-8deg)}.envInitial{z-index:3;width:30px;height:30px;color:var(--blue);background:#fff;border-radius:50%;place-items:center;font-size:13px;font-weight:700;display:grid;position:absolute;top:14px;left:16px;box-shadow:0 2px 8px #10284d1f}.envText small{color:#8f7c5b}.envText b{color:#5a3a24;font-size:22px;font-weight:600}.openLabel{opacity:0;transition:all .25s;transform:translateY(4px);color:var(--blue)!important}.envelope:hover .openLabel,.envelope:focus-visible .openLabel{opacity:1;transform:none}.empty{background:#fafcff;border-radius:18px;font-size:14px}.adminRows{border:1px solid var(--line);border-radius:16px;gap:0;overflow:hidden}.row{border:0;border-bottom:1px solid var(--line);background:#fff;border-radius:0;grid-template-columns:120px 140px 1fr 170px;padding:14px 18px;font-size:14px}.row:last-child{border-bottom:0}.row:hover{background:#f8fbff}.row b{color:var(--ink);font-weight:600}.row .rowTo{color:var(--blue)}.row time{white-space:nowrap;font-size:12px}.historyPagination{font-size:13px}.appreciation{border-radius:var(--radius);box-shadow:var(--shadow);background:linear-gradient(135deg,#fff,#fbf6ec);border:1px solid #10284d0f;padding:40px 26px}.appreciation h2{color:var(--navy);font-size:44px;font-weight:600}.appreciationLabel{color:var(--gold);opacity:1;font-weight:600}.progress{height:8px}.progress>div{background:linear-gradient(90deg,var(--gold-2),var(--gold))}.footer{color:#95a2b4;padding:28px 20px 36px;font-size:12px}.letter{border-radius:10px;box-shadow:0 30px 80px #10284d59}.close{box-shadow:0 4px 14px #10284d26}.loginShell{grid-template-columns:1.1fr .9fr;align-items:center;gap:56px;max-width:1180px;min-height:calc(100svh - 152px);margin:0 auto;padding:48px 24px;display:grid}.loginIntro h1{color:var(--navy);letter-spacing:-.015em;margin:16px 0 18px;font:600 68px/1.02 Cormorant Garamond,Georgia,serif}.loginIntro h1 em{background:linear-gradient(135deg,var(--blue),var(--blue-2) 60%,var(--gold));color:#0000;-webkit-background-clip:text;background-clip:text;font-style:italic}.loginIntro>p{color:var(--muted);max-width:480px;margin:0 0 28px;font-size:18px;line-height:1.7}.loginFeatures{gap:14px;max-width:420px;margin:0;padding:0;list-style:none;display:grid}.loginFeatures li{align-items:center;gap:14px;display:flex}.loginFeatures li>span{border:1px solid var(--line);width:40px;height:40px;color:var(--gold);background:#fff;border-radius:12px;flex:none;place-items:center;font-size:16px;display:grid;box-shadow:0 2px 8px #10284d0d}.loginFeatures b{color:var(--ink);font-size:15px;display:block}.loginFeatures small{color:var(--muted);font-size:13px}.loginEnvelope{filter:drop-shadow(0 22px 30px #60481e2e);width:250px;height:150px;margin:40px 0 0 20px;position:relative;transform:rotate(-6deg)}.le-back,.le-front{border-radius:12px;position:absolute;inset:0}.le-back{background:#ead9b8}.le-paper{background:var(--paper);border-radius:6px;height:130px;padding:14px 16px;animation:5s ease-in-out infinite paper-float;position:absolute;top:-54px;left:16px;right:16px;box-shadow:0 4px 12px #00000014}.le-paper i{color:#75423c;font:italic 16px Georgia,serif}.le-paper span{background:#efe6d4;border-radius:3px;height:6px;margin-top:10px;display:block}.le-paper span:last-child{width:60%}.le-front{clip-path:polygon(0 30%,50% 72%,100% 30%,100% 100%,0 100%);background:linear-gradient(160deg,#f6ead2,#e7d3ab)}.le-seal{color:#f5d7b2;background:radial-gradient(circle at 35% 30%,#b8453b,#8b2e27 55%,#6e201c);border-radius:50%;place-items:center;width:40px;height:40px;display:grid;position:absolute;top:84px;left:50%;transform:translate(-50%,-50%)}@keyframes paper-float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.loginCard{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);text-align:left;background:#ffffffdb;border:1px solid #10284d12;border-radius:28px;padding:40px 38px;box-shadow:0 30px 80px #10284d1f}.loginLogo{border-radius:14px;margin-bottom:18px;display:block}.loginCard h2{color:var(--navy);margin:0 0 6px;font:600 36px/1.1 Cormorant Garamond,Georgia,serif}.loginCard .sub{margin:0 0 24px}.loginCard .googleSignIn{border-radius:14px;width:100%;padding:14px 20px;font-size:15px;box-shadow:0 1px 2px #10284d0f}.loginCard .googleSignIn:hover{background:#f8fbff;border-color:#c9d8ec}.loginCard .phoneSignIn{max-width:none;margin:22px 0 0}.orDivider{margin-bottom:16px;font-size:12px}.loginCard .phoneRow{flex-direction:column;gap:10px}.loginCard .phoneRow .btn{border-radius:14px;width:100%;padding:14px}.loginCard .phoneRow input[name=code]{text-align:center;letter-spacing:.6em;font-size:22px;font-weight:600}.loginCard .loginError{color:#9a3434;background:#fff4f4;border:1px solid #f0caca;border-radius:12px;margin:16px 0 0;padding:10px 14px;font-size:13px}.loginCard .loginHint{border-top:1px solid var(--line);max-width:none;margin:22px 0 0;padding-top:18px;font-size:12px}.linkButton{padding:10px 0;font-size:13px;font-weight:600;text-decoration:none}.linkButton:hover{text-decoration:underline;transform:none}.adminPage{gap:22px;max-width:1080px;margin:36px auto 60px}.adminPage .panel>.eyebrow{margin-bottom:6px}.adminForm{grid-template-columns:1.1fr 1.3fr 1fr auto;gap:14px;margin-top:6px}.adminForm .btn{height:50px}.adminHead{flex-wrap:wrap;gap:12px;margin-bottom:20px}.statChips{flex-wrap:wrap;gap:8px;display:flex}.chip{color:var(--blue);background:#eef3fb;border-radius:999px;padding:6px 12px;font-size:12px;font-weight:600}.userTable{border:1px solid var(--line);border-radius:16px;gap:0;overflow:hidden}.userRow{border:0;border-bottom:1px solid var(--line);background:#fff;border-radius:0;grid-template-columns:1.2fr 1.6fr 1fr 96px;padding:12px 18px;font-size:14px}.userRow:last-child{border-bottom:0}.userRow:not(.userHeadRow):hover{background:#f8fbff}.userHeadRow{border-bottom:1px solid var(--line);letter-spacing:1px;color:#6b7a90;background:#f7f9fc;padding:10px 18px;font-size:11px}.userName{align-items:center;gap:10px;font-weight:600;display:flex;color:var(--ink)!important}.userAvatar{color:#fff;background:linear-gradient(135deg,var(--blue),var(--blue-2));border-radius:50%;flex:none;place-items:center;width:32px;height:32px;font-size:13px;font-style:normal;display:grid}.userRow .muted{color:#b3bdca}.dangerButton{color:#b03232;background:#fff;border:1px solid #f0d2d2;border-radius:999px;padding:6px 14px;font-size:12px;font-weight:600}.dangerButton:hover{background:#fff3f3;transform:none}@media (max-width:900px){.loginShell{grid-template-columns:1fr;gap:32px;padding:32px 16px}.loginIntro h1{font-size:48px}.loginEnvelope{display:none}.steps,.row{grid-template-columns:1fr 1fr}}@media (max-width:760px){.header{padding:0 16px}.hero:not(.loginHero){min-height:360px;padding:48px 16px 90px}.hero:not(.loginHero) h1{font-size:42px}.panel{padding:22px}.panel h2{font-size:26px}.loginIntro>p{font-size:16px}.loginCard{padding:28px 22px}.adminForm{grid-template-columns:1fr}.userRow{grid-template-columns:1fr auto;row-gap:4px}.userRow>span{color:var(--muted);grid-column:1;font-size:13px}.userRow>form{grid-area:1/2/span 3;align-self:center}.row{grid-template-columns:1fr auto}.row .msg{grid-column:1/-1}}.btn.googleSignIn,.loginCard .googleSignIn{border:1px solid var(--line);color:#1d2b40!important;background:#fff!important}.loginLogo{object-fit:contain;width:auto!important;height:52px!important}.loginEnvelope{margin-top:96px}.brand img{object-fit:contain;border-radius:0;width:auto!important;height:36px!important}.brand>div{border-left:1px solid var(--line);padding-left:12px}.letterLogo{width:auto!important;height:44px!important}@media (max-width:900px){.loginCard{order:-1}.loginShell{padding-top:24px}}@media (max-width:760px){.brand>div{display:none}}@media (max-width:560px){.account>span{display:none}.account{gap:6px}.logout{font-size:12px;padding:7px 10px!important}.avatar{width:32px;height:32px}.brand img{height:30px!important}html,body{overflow-x:hidden}}:root{--font:"Roboto",system-ui,-apple-system,"Segoe UI",Arial,sans-serif}html,body,button,input,select,textarea,h1,h2,h3,h4,p,label,small,b,strong,em,i,time,.hero h1,.hero p,.panel h2,.loginIntro h1,.loginCard h2,.step b,.envText b,.appreciation h2,.letter h3,.letterTo,.letterMessage,.letterFrom,.letterFrom small,.le-paper i,.write textarea,.write textarea:focus{font-family:var(--font)!important}h1,h2,h3,.panel h2,.loginCard h2,.appreciation h2{letter-spacing:-.02em;font-weight:700}.hero:not(.loginHero) h1,.loginIntro h1{letter-spacing:-.03em;font-weight:700}.hero:not(.loginHero) h1{font-size:56px}.loginIntro h1{font-size:60px;line-height:1.08}.panel h2{font-size:28px}.loginCard h2{font-size:30px}.appreciation h2{font-size:38px}.step b{font-size:22px;font-weight:700}.envText b{font-size:18px;font-weight:500}.write textarea{font-size:16px;line-height:1.85}.letter h3{font-size:32px;font-weight:700}.letterMessage{font-size:16px;line-height:1.8}@media (max-width:900px){.loginIntro h1{font-size:42px}}@media (max-width:760px){.hero:not(.loginHero) h1{font-size:38px}.panel h2{font-size:24px}}.loginIntro h1,.loginIntro h1 em{letter-spacing:0!important;font-family:Pacifico,Roboto,cursive!important;font-style:normal!important;font-weight:400!important}.loginIntro h1{margin:12px 0 22px!important;font-size:52px!important;line-height:1.3!important}.loginIntro h1 em{padding-right:.12em}@media (max-width:900px){.loginIntro h1{font-size:40px!important}}@media (max-width:480px){.loginIntro h1{font-size:34px!important}}.loginCard .phoneSignIn{margin:0}.loginCard .orDivider{margin:22px 0 16px}.hero:not(.loginHero){color:#5b2a3a;background:radial-gradient(520px 260px at 85% 15%,#ffc4d68c,#0000 70%),radial-gradient(620px 320px at 10% 85%,#ffdde8cc,#0000 70%),radial-gradient(420px 220px at 50% 110%,#f7d6a059,#0000 70%),linear-gradient(160deg,#fff7f9 0%,#ffeef3 45%,#fde7ee 100%);border-bottom:1px solid #f7dbe4}.hero:not(.loginHero):before,.hero:not(.loginHero):after{content:"♥";color:#e9789b38;font-size:90px}.hero:not(.loginHero):before{top:70px;left:9%;transform:rotate(-14deg)}.hero:not(.loginHero):after{font-size:60px;bottom:90px;right:10%;transform:rotate(12deg)}.hero:not(.loginHero) .heroInner:before,.hero:not(.loginHero) .heroInner:after{content:"♡";color:#d65c8447;pointer-events:none;animation:6s ease-in-out infinite heart-float;position:absolute}.hero:not(.loginHero) .heroInner:before{font-size:28px;top:40%;left:-70px}.hero:not(.loginHero) .heroInner:after{font-size:36px;animation-delay:-3s;top:12%;right:-60px}@keyframes heart-float{0%,to{transform:translateY(0)rotate(-6deg)}50%{transform:translateY(-12px)rotate(6deg)}}.hero:not(.loginHero) .eyebrow{color:#d06a8c;letter-spacing:4px}.hero:not(.loginHero) h1{background:linear-gradient(135deg,#b4436c,#e0799b 55%,#c99a45);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;padding:0 .1em;letter-spacing:0!important;color:#8e3b5a!important;font-family:Pacifico,Roboto,cursive!important;font-size:54px!important;font-weight:400!important;line-height:1.3!important}.hero:not(.loginHero) p{font-size:17px;color:#9a6474!important}.hero:not(.loginHero) .btn{color:#fff!important;background:linear-gradient(135deg,#f49ab6,#e0628b)!important;box-shadow:0 10px 28px #e0628b52!important}.hero:not(.loginHero) .btn:hover{box-shadow:0 14px 34px #e0628b66!important}@media (max-width:760px){.hero:not(.loginHero) h1{font-size:36px!important}.hero:not(.loginHero) .heroInner:before,.hero:not(.loginHero) .heroInner:after{display:none}}.inbox.received{border-color:#f7dbe4;margin-top:18px;background:linear-gradient(#fff,#fff8fa)!important}.inbox.received h2{color:#8e3b5a}.inbox.received .envBody{background:linear-gradient(160deg,#fff7fa,#fde3ec);border-color:#f5cfdc}.inbox.received .flap{background:linear-gradient(#fff0f5,#fbd9e5);border-bottom-color:#f3c6d6}.inbox.received .seal{color:#fff;background:radial-gradient(circle at 35% 30%,#f08bab,#d9567f 55%,#b53a62)}.inbox.received .envText b{color:#8e3b5a}.envelope.unread .envInitial{box-shadow:0 0 0 3px #f49ab6,0 2px 8px #10284d1f}.envelope.reacted .envInitial{background:#fff;font-size:16px}.reactionBar{border-top:1px dashed #e8d9c6;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:26px;padding-top:18px;display:flex}.reactionButton{color:#8e3b5a;background:#fff;border:1px solid #f0d6df;border-radius:999px;align-items:center;gap:6px;padding:8px 14px;font-size:13px;font-weight:500;transition:transform .15s,background .2s,box-shadow .2s;display:inline-flex}.reactionButton:hover{background:#fff3f7;transform:translateY(-2px)scale(1.04)}.reactionButton.active{color:#fff;background:linear-gradient(135deg,#f49ab6,#e0628b);border-color:#0000;box-shadow:0 6px 16px #e0628b59}.reactionButton .reactionEmoji{font-size:20px;line-height:1}.reactionButton.active .reactionEmoji{animation:.35s reaction-pop}@keyframes reaction-pop{0%{transform:scale(.6)}60%{transform:scale(1.35)}to{transform:scale(1)}}.reactionNote{text-align:center;color:#9aa3ae;margin-top:22px;font-size:13px}.reactionNote.received{color:#8e3b5a;justify-content:center;align-items:center;gap:8px;font-weight:600;display:flex}.reactionNote .reactionEmoji{font-size:24px}.readReceipt{text-align:center;color:#9aa3ae;margin-top:22px;font-size:12px}.readReceipt.read{color:#2f6fc4;font-weight:600}.readStatus{letter-spacing:.2px;white-space:nowrap;border-radius:999px;margin-top:6px;padding:3px 10px;font-size:11px;font-weight:700;display:inline-block}.readStatus.isUnread{color:#7a8799;background:#f1f4f8}.readStatus.isRead{color:#2f6fc4;background:#e8f1fd}.readStatus.inboxStatus.isUnread{color:#fff;background:linear-gradient(135deg,#f49ab6,#e0628b);box-shadow:0 3px 10px #e0628b4d}.readStatus.inboxStatus.isRead{color:#a0798a;background:#f6eef1}.envText .readStatus{margin-top:6px}.envelope.unread .envText small:first-child{color:inherit;font-weight:inherit}.envelope.unread .seal{animation:2.2s ease-in-out infinite unread-pulse}@keyframes unread-pulse{0%,to{box-shadow:0 6px 14px #6e201c59,0 0 #e0628b73}50%{box-shadow:0 6px 14px #6e201c59,0 0 0 10px #e0628b00}}.unreadCount{vertical-align:middle;color:#fff;font:700 12px var(--font);background:#e0628b;border-radius:999px;margin-left:10px;padding:3px 10px;display:inline-block}.row{grid-template-columns:120px 140px 1fr 170px 100px}.row .readStatus{justify-self:end;margin:0}.envText small.openLabel{display:none}@media (max-width:900px){.row{grid-template-columns:1fr auto}}@media (max-width:760px){.row .readStatus{grid-column:2;justify-self:end}}.lockedField{color:#1d2b40;cursor:default;font-weight:600;background:#f3f6fa!important}.lockedField:focus{box-shadow:none!important;border-color:var(--line)!important}.fieldHint{color:#8a97a8;margin-top:6px;font-size:12px;display:block}.smsStatus{color:#5d6d84;background:#f3f6fa;border-radius:12px;max-width:420px;margin:4px auto 18px;padding:10px 14px;font-size:13px}.smsStatus.sent{color:#276b43;background:#effaf3}.smsStatus.failed,.smsStatus.no_recipient{color:#9a3434;background:#fff4f4}.unreadButton{border:1px solid var(--line);color:#5d6d84;background:#fff;border-radius:999px;align-items:center;gap:7px;padding:6px 8px 6px 12px;font-size:13px;font-weight:600;display:inline-flex}.unreadButton b{color:#6b7a90;background:#eef2f7;border-radius:999px;place-items:center;min-width:22px;height:22px;padding:0 6px;font-size:12px;display:grid}.unreadButton.hasUnread{color:#b4436c;background:#fff5f8;border-color:#f5c3d3}.unreadButton.hasUnread b{color:#fff;background:linear-gradient(135deg,#f49ab6,#e0628b);animation:1.8s ease-in-out infinite unread-bounce}@keyframes unread-bounce{0%,to{transform:scale(1)}50%{transform:scale(1.15)}}.notifyButton{border:1px solid var(--line);background:#fff;border-radius:50%;place-items:center;width:34px;height:34px;padding:0;font-size:15px;display:grid}.notifyButton:hover{background:#fff5f8}#received{scroll-margin-top:90px}@media (max-width:760px){.unreadLabel{display:none}.unreadButton{padding:6px 8px}}
