:root{--bg:#171414;--panel:#211c1d;--line:#3a3030;--gold:#d6b18c;--pink:#d38e9c;--text:#f4eae1;--muted:#b9aaa5}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:22px}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.65 Arial,sans-serif}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}a,button{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:2px solid var(--pink);outline-offset:5px}button{color:inherit}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:Georgia,serif;font-weight:400;line-height:1.12}i,em{font-weight:400;color:var(--gold)}.shell{max-width:1640px;margin:auto;display:grid;grid-template-columns:255px 1fr;min-height:100vh}.sidebar{padding:38px 27px;border-right:1px solid var(--line);display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:11px}.brand img{width:48px;height:61px;object-fit:cover;border-radius:35px}.brand>span{font:43px/.9 Georgia,serif;letter-spacing:1px}.brand small{display:block;font:7px/2.4 Arial,sans-serif;letter-spacing:2.1px;margin-top:5px}.side-label{font-size:9px;letter-spacing:2px;color:#aa9691;margin:55px 0 16px}.sidebar nav{display:grid;gap:6px}.sidebar nav a{display:flex;gap:13px;padding:12px 13px;border-radius:5px;color:#c4b4ad;font-size:14px}.sidebar nav span{flex:1}.sidebar nav a:hover,.sidebar nav .active{background:#302226;color:#e5b7c0}.side-bottom{margin-top:auto;padding-top:40px}.side-bottom p{font:23px/1.4 Georgia,serif;margin-bottom:26px}.side-bottom>a,.install-link{display:block;font-size:11px;color:var(--muted);padding:12px 0}.install-link{border:0;border-top:1px solid var(--line);background:none;text-align:left;width:100%}.install-link span{float:right}.main-wrap{min-width:0}header{border-bottom:1px solid var(--line);height:83px;padding:0 5%;display:flex;align-items:center;justify-content:space-between;font-size:9px;letter-spacing:1.6px;color:var(--muted)}header a{font-size:12px;letter-spacing:0}header a span{color:var(--gold);margin-left:9px}main{padding:44px 5% 0;max-width:1260px;margin:auto}.eyebrow{font-size:9px;letter-spacing:2.1px;color:var(--gold);font-weight:600}.welcome{position:relative;margin-bottom:34px}.welcome h1{font-size:clamp(42px,4.5vw,67px);letter-spacing:-1.6px;margin:15px 0}.welcome>p:last-of-type{color:var(--muted);font-size:14px}.hero-seal{position:absolute;right:5%;top:29px;text-align:center;border:1px solid #67503e;border-radius:50%;width:126px;height:126px;display:grid;align-content:center;transform:rotate(10deg);color:var(--gold)}.hero-seal span{font-size:42px;line-height:1.2}.hero-seal small{font-size:8px;letter-spacing:2px;line-height:1.5}.quick-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.quick{padding:25px 28px;border:1px solid #503638;border-radius:10px;transition:transform .2s,border-color .2s}.quick:hover{transform:translateY(-3px);border-color:var(--gold)}.primary{background:radial-gradient(ellipse at top right,#6a3d47 0%,#37252a 65%)}.secondary{background:radial-gradient(ellipse at top right,#483729 0%,#27211e 65%);border-color:#4b3c30}.card-top{display:flex;align-items:center;gap:13px;font-size:8px;letter-spacing:1.4px;color:#d8b5b5}.card-top b{margin-left:auto;font-size:18px;font-weight:400}.icon{font-size:25px;line-height:1}.quick h2{font-size:35px;margin:24px 0 14px}.quick p{font-size:12px;color:#d0bdb7;line-height:1.7}.action{display:flex;justify-content:space-between;border-top:1px solid #715254;margin-top:25px;padding-top:15px;font-size:12px}.secondary .action{border-color:#584536}.section-title{display:flex;align-items:center;justify-content:space-between;margin:34px 0 20px;gap:10px}.section-title h2{font-size:29px;margin-top:8px}.pill{font-size:7px;letter-spacing:1px;padding:7px 10px;border:1px solid var(--line);border-radius:30px;color:var(--muted)}.offer-box{border:1px solid #554232;border-radius:9px;padding:27px;display:flex;align-items:center;gap:27px;background:linear-gradient(110deg,#2f261f,#221e1b)}.offer-mark{font:65px Georgia,serif;color:var(--gold);border-right:1px solid #5b4737;padding-right:25px;white-space:nowrap}.offer-mark span{font-size:30px}.offer-copy{flex:1}.offer-copy .eyebrow{font-size:7px;letter-spacing:1.1px}.offer-copy h3{font-size:24px;margin:8px 0 12px}.offer-copy p{font-size:11px}.offer-copy small{font-size:9px;color:var(--muted)}.code{font-size:10px;letter-spacing:1px;background:#3c3026;border:1px dashed #967353;border-radius:4px;padding:3px 7px;margin-left:4px}.code span{margin-left:6px}.button{display:inline-flex;align-items:center;justify-content:center;gap:22px;padding:12px 19px;border:0;border-radius:5px;font-size:11px;white-space:nowrap}.gold{background:var(--gold);color:#241c17}.gold:hover{background:#e8c6a3}.lower-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:20px;margin:24px 0 40px}.letter,.explore{padding:26px 28px;border:1px solid var(--line);border-radius:9px;background:#1c1819}.lower-grid h2{font-size:29px;margin:13px 0}.letter p{color:var(--muted);font-size:12px;max-width:310px}.text-link{display:flex;justify-content:space-between;color:var(--pink);font-size:12px;margin-top:24px}.subscribe{display:block;font-size:10px;margin-top:15px;color:var(--muted)}.explore>a{display:flex;justify-content:space-between;padding:11px 0;border-bottom:1px solid var(--line);font-size:11px;color:#d0bdb7}.explore>a:last-child{border:0}footer{padding:22px 0 30px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:15px;border-top:1px solid var(--line);font-size:7px;letter-spacing:1px;color:var(--muted)}footer a{font-size:10px;letter-spacing:0}.mobile-nav{display:none}dialog{color:var(--text);background:radial-gradient(ellipse at top,#473035,#211a1b 70%);border:1px solid #886356;border-radius:14px;padding:45px 36px 28px;max-width:440px;width:calc(100% - 34px);text-align:center;box-shadow:0 20px 100px #0009}dialog::backdrop{background:#080606c9;backdrop-filter:blur(5px)}.close{position:absolute;right:15px;top:8px;font-size:28px;background:none;border:0;color:#c3aca5}.modal-symbol{color:var(--gold);font-size:53px;margin-top:8px}dialog h2{font-size:36px;margin:13px 0 20px}dialog>p:not(.eyebrow){font-size:13px;color:#d4c0b8;margin-bottom:23px}dialog .button{width:100%}.quiet{display:block;background:none;border:0;color:#d0b5af;font-size:12px;padding:17px;width:100%}dialog>small{display:block;color:var(--muted);font-size:9px}.instructions{text-align:left;margin:20px 0}.instructions h3{font-family:Arial,sans-serif;font-size:12px;color:var(--gold);margin:20px 0 7px}.instructions p{font-size:12px;color:#d4c0b8}.toast{position:fixed;bottom:30px;left:50%;transform:translateX(-50%);background:var(--gold);color:#231b15;border-radius:6px;padding:10px 22px;opacity:0;pointer-events:none;z-index:5;font-size:12px}.toast.show{opacity:1}[hidden]{display:none!important}.expired p{font-size:13px;color:var(--muted);margin-top:12px}@media(min-width:1450px){main{padding-top:65px}.welcome{margin-bottom:45px}.quick{padding:32px}.quick h2{font-size:42px}}@media(max-width:1050px){.shell{grid-template-columns:210px 1fr}.sidebar{padding:32px 18px}.brand>span{font-size:37px}.offer-box{gap:17px;padding:22px}.offer-mark{font-size:47px;padding-right:17px}.offer-box>.button{padding:11px}.hero-seal{right:0;width:95px;height:95px}.hero-seal span{font-size:30px}.hero-seal small{font-size:6px}}@media(max-width:760px){.shell{display:block}.sidebar{height:auto;position:relative;border:0;padding:23px 22px 0}.brand img{height:47px;width:37px}.brand>span{font-size:33px}.brand small{font-size:6px}.sidebar nav,.side-label,.side-bottom{display:none}header{height:53px;margin:0 22px;padding:0;font-size:7px;letter-spacing:1px}header a{font-size:10px}main{padding:29px 22px 0}.welcome h1{font-size:46px;letter-spacing:-1px}.welcome .eyebrow{font-size:8px}.welcome>p:last-of-type{font-size:12px;max-width:280px}.hero-seal{right:0;top:55px;width:67px;height:67px}.hero-seal span{font-size:23px}.hero-seal small{font-size:5px;letter-spacing:1px}.quick-grid{gap:11px}.quick{padding:18px 15px}.card-top{gap:7px}.card-top>span:not(.icon){font-size:6px;letter-spacing:.7px}.card-top .icon{font-size:20px}.card-top b{display:none}.quick h2{font-size:28px;margin:21px 0 12px}.quick p{font-size:10px}.quick p br{display:none}.action{font-size:10px;margin-top:22px;padding-top:13px}.section-title{margin-top:29px}.section-title h2{font-size:26px}.pill{display:none}.offer-box{position:relative;display:grid;grid-template-columns:58px 1fr;gap:16px;padding:23px 18px}.offer-mark{font-size:39px;padding-right:12px}.offer-mark span{font-size:20px}.offer-copy h3{font-size:24px}.offer-copy .eyebrow{font-size:6px}.offer-box>.button{grid-column:2;justify-self:start}.lower-grid{grid-template-columns:1fr;gap:14px;margin-top:18px}.letter,.explore{padding:25px}.lower-grid h2{font-size:30px}.letter p{max-width:none}.mobile-nav{display:flex;position:fixed;bottom:0;left:0;right:0;justify-content:space-around;background:#211a1bf5;border-top:1px solid #493434;padding:10px 8px calc(10px + env(safe-area-inset-bottom));z-index:3;backdrop-filter:blur(16px)}.mobile-nav a,.mobile-nav button{background:none;border:0;display:flex;flex-direction:column;align-items:center;color:var(--gold);font-size:21px;line-height:1.25;min-width:48px}.mobile-nav span{font-size:9px;color:#d2bfb6;margin-top:5px}footer{padding-bottom:105px;font-size:6px}footer>span:last-child{display:none}.toast{bottom:100px}.desktop{display:none}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.quick{transition:none}}
/* An invitation in parchment and wax. */
.letter-replay{background:none;color:var(--gold);cursor:pointer}.envelope-dialog{padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;width:min(470px,calc(100% - 26px));max-width:470px;max-height:calc(100dvh - 24px);overflow:auto;scrollbar-width:none}.envelope-dialog>.close{position:fixed;right:18px;top:12px;z-index:30;background:#21191be6;width:35px;height:35px;border:1px solid #665048;border-radius:50%;line-height:1}.mail-scene{position:relative;height:680px;max-height:calc(100dvh - 30px);min-height:540px;width:100%;perspective:1200px;isolation:isolate}.invitation-heading{position:absolute;top:32px;left:0;right:0;transition:opacity .4s}.invitation-heading h2{font:29px Georgia,serif;color:#e7c9ad;margin:12px 0}.invitation-heading .eyebrow{font-size:9px}.envelope-back{position:absolute;top:245px;left:4%;width:92%;height:245px;border-radius:7px;background:radial-gradient(ellipse at center,#674934,#3c291e);border:1px solid #bc956d;box-shadow:0 24px 65px #0008}.envelope-flap{position:absolute;top:245px;left:4%;width:92%;height:154px;background:linear-gradient(165deg,#dcc3a0,#b38a5c);clip-path:polygon(0 0,100% 0,50% 100%);transform-origin:center top;z-index:6;filter:drop-shadow(0 4px 2px #30201277);backface-visibility:visible}.envelope-front{position:absolute;left:4%;top:245px;width:92%;height:245px;z-index:5;border-radius:4px 4px 9px 9px;background:linear-gradient(32deg,transparent 49.6%,#79553266 49.8%,transparent 50.3%) left/50% 100% no-repeat,linear-gradient(-32deg,transparent 49.6%,#79553266 49.8%,transparent 50.3%) right/50% 100% no-repeat,radial-gradient(ellipse at 50% 80%,#e0cba8,#ba9366);clip-path:polygon(0 0,50% 57%,100% 0,100% 100%,0 100%);border-bottom:2px solid #a57d50;box-shadow:inset 0 -12px 20px #65422433}.envelope-front:after,.parchment:after{content:'';position:absolute;inset:0;pointer-events:none;opacity:.19;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='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.4' filter='url(%23n)'/%3E%3C/svg%3E")}.address{position:absolute;bottom:38px;left:0;right:0;font:italic 21px Georgia,serif;color:#63472e;letter-spacing:.5px}.envelope-stamp{position:absolute;bottom:15px;left:0;right:0;font-size:7px;letter-spacing:3px;color:#79583c}.wax-seal{position:absolute;z-index:9;left:calc(50% - 35px);top:350px;width:70px;height:70px;border:0;border-radius:44% 51% 45% 50%;background:radial-gradient(circle at 35% 25%,#ba4a49 0%,#8e242e 45%,#561521 88%);box-shadow:2px 7px 9px #34121d88,inset 2px 2px 4px #e77d6470,inset -3px -4px 5px #3b081ccc;transform:rotate(-10deg);transition:filter .2s}.wax-seal:hover{filter:brightness(1.15)}.wax-seal:before{content:'';position:absolute;inset:8px;border:1px solid #de8b6870;border-radius:50%;box-shadow:inset 1px 1px 2px #370e1a,1px 1px 2px #df70535c}.wax-seal span{font:italic 39px Georgia,serif;color:#d58c73;text-shadow:1px 2px 1px #400c16;position:relative}.seal-hint{position:absolute;top:527px;left:0;right:0;font-size:9px;letter-spacing:3px;color:#dec3aa;transition:opacity .3s}.seal-hint span{margin-left:9px;color:var(--pink)}.parchment{position:absolute;left:9%;top:36px;width:82%;height:480px;background:radial-gradient(ellipse at 45% 40%,#f4e8d1 30%,#dfc7a2 100%);color:#392a23;z-index:3;padding:14px;transform:translateY(225px) scale(.86,.38);transform-origin:center bottom;opacity:0;box-shadow:0 6px 25px #1b110b66;border-radius:2px}.letter-border{height:100%;border:1px solid #b59269;padding:17px 18px;position:relative}.letter-border:before{content:'✧';position:absolute;top:-9px;left:calc(50% - 10px);background:#edddc0;padding:0 5px;color:#94704b;font-size:12px}.letter-wordmark{font:40px/.95 Georgia,serif;letter-spacing:2px;color:#66452d;margin:0 0 14px}.parchment .eyebrow{color:#8c6443;font-size:7px;letter-spacing:1.9px}.parchment h2{font-size:31px;margin:17px 0 8px;line-height:1.1}.parchment h2 i{color:#96604e}.letter-rule{color:#a57856;font-size:23px;line-height:1.4}.parchment p:not(.eyebrow):not(.letter-wordmark):not(.signature){font-size:12px;line-height:1.9;margin:8px 0;color:#594236}.parchment b{letter-spacing:2px;border-bottom:1px solid #af8667}.parchment .letter-date{font-size:9px!important;letter-spacing:1px;margin:12px 0!important}.parchment .button{background:#3a2826;color:#f2d9b8;font-size:11px;width:100%;padding:12px;margin-top:4px}.signature{font:italic 21px Georgia,serif;color:#885746;margin:18px 0 12px}.parchment small{font-size:7px;line-height:1.5;display:block;color:#79604d}.letter-dismiss{position:absolute;top:605px;left:0;width:100%;opacity:0;pointer-events:none;color:#d7b89f;font-size:11px}.envelope-dialog.opening .wax-seal{animation:seal-break .7s ease-in forwards}.envelope-dialog.opening .envelope-flap{animation:flap-open .75s .4s ease-in-out forwards}.envelope-dialog.opening .parchment{animation:letter-rise 1.25s 1s cubic-bezier(.2,.7,.2,1) forwards}.envelope-dialog.opening .invitation-heading,.envelope-dialog.opening .seal-hint{opacity:0}.envelope-dialog.opening .envelope-front,.envelope-dialog.opening .envelope-back{animation:envelope-settle 1.1s 1.15s ease forwards}.envelope-dialog.opened .letter-dismiss{opacity:1;pointer-events:auto}.envelope-dialog.opened .parchment{z-index:10}.envelope-dialog.opened .envelope-flap{opacity:0}@keyframes seal-break{20%{transform:rotate(-17deg) scale(1.12)}45%{transform:translate(6px,4px) rotate(8deg) scale(1.05)}100%{transform:translate(55px,110px) rotate(55deg) scale(.8);opacity:0}}@keyframes flap-open{0%{transform:rotateX(0deg);z-index:6}49%{z-index:6}50%{z-index:1}100%{transform:rotateX(180deg);z-index:1;filter:brightness(.75)}}@keyframes letter-rise{0%{opacity:0;transform:translateY(225px) scale(.86,.38)}18%{opacity:1}55%{transform:translateY(-24px) scale(.96,1);z-index:7}100%{opacity:1;transform:translateY(0) scale(1);z-index:10}}@keyframes envelope-settle{100%{transform:translateY(80px);opacity:.8}}@media(max-width:760px){.letter-replay{display:inline-block;font-size:7px;padding:7px 8px;letter-spacing:.4px}.section-title>.letter-replay{max-width:120px;text-align:center}.envelope-dialog{width:calc(100% - 20px)}.mail-scene{height:650px}.parchment{left:7%;width:86%;top:26px}.parchment h2{font-size:29px}.letter-border{padding:16px 14px}.envelope-back,.envelope-front{left:3%;width:94%;height:220px}.envelope-flap{left:3%;width:94%;height:145px}.wax-seal{top:343px}.seal-hint{top:500px}.letter-dismiss{top:575px}.address{font-size:18px}}@media(max-height:650px){.mail-scene{min-height:500px;height:550px}.parchment{top:15px;height:440px}.letter-border{padding:10px 14px}.letter-wordmark{font-size:32px;margin-bottom:10px}.parchment h2{font-size:27px;margin-top:12px}.signature{margin:12px 0}.envelope-back,.envelope-front,.envelope-flap{top:205px}.wax-seal{top:310px}.invitation-heading{top:15px}.seal-hint{top:470px}.letter-dismiss{top:500px}}@media(prefers-reduced-motion:reduce){.envelope-dialog.opening .wax-seal,.envelope-dialog.opening .envelope-flap{animation:none;opacity:0}.envelope-dialog.opening .parchment{animation:none;transform:none;opacity:1;z-index:10}.envelope-dialog.opening .envelope-front,.envelope-dialog.opening .envelope-back{animation:none;transform:translateY(80px)}.invitation-heading,.seal-hint{transition:none}}
/* Photographic envelope materials; the original Solis rose letter. */
.envelope-back{background:url('assets/antique-envelope-v2.png') center/100% 100% no-repeat;border:0;border-radius:0;filter:brightness(.72);box-shadow:none}.envelope-front{background:url('assets/antique-envelope-v2.png') center/100% 100% no-repeat;border:0;border-radius:0;box-shadow:none;filter:drop-shadow(0 16px 18px #0008)}.envelope-front:after{display:none}.envelope-flap{background:url('assets/antique-envelope-v2.png') center top/100% 245px no-repeat;filter:drop-shadow(0 3px 2px #35231355)}.address,.envelope-stamp{display:none}.wax-seal{background:transparent;border-radius:0;box-shadow:none;width:90px;height:90px;left:calc(50% - 45px);top:337px;filter:drop-shadow(2px 5px 4px #260b1288)}.wax-seal:before{display:none}.wax-seal span{display:none}.wax-seal img{width:100%;height:100%;object-fit:contain;display:block}.wax-seal:hover{filter:brightness(1.1) drop-shadow(2px 5px 4px #260b1288)}.parchment{background:radial-gradient(ellipse at 30% 0%,#67404b 0%,#38262e 55%,#281e23 100%);color:#f4eae1;box-shadow:0 12px 35px #130b0c80,inset 0 0 40px #9a5e6720;border:1px solid #9d7473}.letter-border{border-color:#b68c7370}.letter-border:before{background:#563540;color:#d6b18c}.letter-wordmark{color:#ecd5b7}.parchment .eyebrow{color:#d6b18c}.parchment h2{color:#f4eae1}.parchment h2 i{color:#d6b18c}.letter-rule{color:#d38e9c}.parchment p:not(.eyebrow):not(.letter-wordmark):not(.signature){color:#e5cec7}.parchment b{border-color:#bd8c91}.parchment .button{background:#d6b18c;color:#241c17}.signature{color:#dda7b2}.parchment small{color:#c4aaa6}@media(max-width:760px){.envelope-flap{background-size:100% 220px}.wax-seal{top:330px}}@media(max-height:650px){.wax-seal{top:297px}}
.envelope-back,.envelope-front{background-size:102% 115%;background-position:center}.envelope-flap{background-size:102% 282px;background-position:center -18px}@media(max-width:760px){.envelope-flap{background-size:102% 253px;background-position:center -16px}}
