@font-face{font-family:Fraunces;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/fraunces-vietnamese-600-normal-BjlAJixd.woff2) format("woff2"),url(/assets/fraunces-vietnamese-600-normal-DlAl5EAR.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/fraunces-latin-ext-600-normal-BtzmzP0X.woff2) format("woff2"),url(/assets/fraunces-latin-ext-600-normal-B0Dy4lqi.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fraunces;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/fraunces-latin-600-normal-BFCDtZfi.woff2) format("woff2"),url(/assets/fraunces-latin-600-normal-DL5QCzvS.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fraunces;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/fraunces-vietnamese-700-normal-DH94m5DZ.woff2) format("woff2"),url(/assets/fraunces-vietnamese-700-normal-DxawQjq2.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/fraunces-latin-ext-700-normal-CanUGppC.woff2) format("woff2"),url(/assets/fraunces-latin-ext-700-normal-DuBstVeD.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fraunces;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/fraunces-latin-700-normal-CEOla-zY.woff2) format("woff2"),url(/assets/fraunces-latin-700-normal-DTjk5d1Q.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Figtree;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/figtree-latin-ext-400-normal-CXAzuTZb.woff2) format("woff2"),url(/assets/figtree-latin-ext-400-normal-Gbh-3PTk.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Figtree;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/figtree-latin-400-normal-g7Dtegnw.woff2) format("woff2"),url(/assets/figtree-latin-400-normal-BD4aNku5.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Figtree;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/figtree-latin-ext-500-normal-Du0rIuHj.woff2) format("woff2"),url(/assets/figtree-latin-ext-500-normal-BOEJvrb_.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Figtree;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/figtree-latin-500-normal-BWnGEVsr.woff2) format("woff2"),url(/assets/figtree-latin-500-normal-B_yy1phn.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Figtree;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/figtree-latin-ext-600-normal-DJlfifZj.woff2) format("woff2"),url(/assets/figtree-latin-ext-600-normal-CQqsimlV.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Figtree;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/figtree-latin-600-normal-Cv_xCTDl.woff2) format("woff2"),url(/assets/figtree-latin-600-normal-BM_oTo4n.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Figtree;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/figtree-latin-ext-700-normal-CS4sQkGV.woff2) format("woff2"),url(/assets/figtree-latin-ext-700-normal-BoDi4KL2.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Figtree;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/figtree-latin-700-normal-th6qEP7c.woff2) format("woff2"),url(/assets/figtree-latin-700-normal-BCCt2T1q.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{font-family:Figtree,sans-serif;color:#173a32;background:#073d33;font-synthesis:none;text-rendering:optimizeLegibility;--spruce-950: #052e28;--spruce-900: #073d33;--spruce-800: #0c5a48;--cranberry: #c93632;--cranberry-dark: #9e2526;--cream: #fff7e6;--cream-deep: #f2e7cc;--gold: #e1b957;--ice: #bce4e1;--ink: #173a32;--muted: #6e766e;--danger-bg: #f9dfd9;--shadow: 0 22px 65px rgba(1, 24, 20, .34)}*{box-sizing:border-box}html{min-width:280px;min-height:100%;background:var(--spruce-900);-webkit-text-size-adjust:100%;text-size-adjust:100%}body{margin:0;min-width:280px;min-height:100vh;min-height:100dvh;overflow-x:hidden;overscroll-behavior-x:none}button,input,textarea{font:inherit}button{cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}button:disabled{cursor:not-allowed}button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid var(--gold);outline-offset:3px}.app-shell{min-height:100vh;min-height:100dvh;position:relative;overflow:visible;color:var(--cream);display:grid;grid-template-rows:auto 1fr auto}.scene{position:fixed;inset:0;background:var(--spruce-900) url(/christmas-frame.png) center / cover no-repeat;z-index:-3}.scene:after{content:"";position:absolute;inset:0;background:#01262029}.snow-field{position:fixed;inset:0;pointer-events:none;z-index:-1;overflow:hidden}.snow-field i{position:absolute;top:-8vh;width:4px;height:4px;border-radius:50%;background:#ffffffbd;animation:snowfall linear infinite}.snow-field i:nth-child(3n){width:2px;height:2px;opacity:.5}.snow-field i:nth-child(1){left:5%;animation-duration:14s;animation-delay:-6s}.snow-field i:nth-child(2){left:11%;animation-duration:19s;animation-delay:-3s}.snow-field i:nth-child(3){left:17%;animation-duration:16s;animation-delay:-11s}.snow-field i:nth-child(4){left:23%;animation-duration:21s;animation-delay:-8s}.snow-field i:nth-child(5){left:29%;animation-duration:13s;animation-delay:-4s}.snow-field i:nth-child(6){left:35%;animation-duration:18s;animation-delay:-14s}.snow-field i:nth-child(7){left:41%;animation-duration:23s;animation-delay:-9s}.snow-field i:nth-child(8){left:47%;animation-duration:15s;animation-delay:-7s}.snow-field i:nth-child(9){left:53%;animation-duration:20s;animation-delay:-2s}.snow-field i:nth-child(10){left:59%;animation-duration:17s;animation-delay:-13s}.snow-field i:nth-child(11){left:65%;animation-duration:22s;animation-delay:-6s}.snow-field i:nth-child(12){left:71%;animation-duration:14s;animation-delay:-10s}.snow-field i:nth-child(13){left:77%;animation-duration:19s;animation-delay:-15s}.snow-field i:nth-child(14){left:83%;animation-duration:16s;animation-delay:-5s}.snow-field i:nth-child(15){left:89%;animation-duration:24s;animation-delay:-12s}.snow-field i:nth-child(16){left:95%;animation-duration:18s;animation-delay:-1s}.snow-field i:nth-child(17){left:8%;animation-duration:20s;animation-delay:-17s}.snow-field i:nth-child(18){left:27%;animation-duration:16s;animation-delay:-9s}.snow-field i:nth-child(19){left:44%;animation-duration:22s;animation-delay:-19s}.snow-field i:nth-child(20){left:62%;animation-duration:18s;animation-delay:-11s}.snow-field i:nth-child(21){left:79%;animation-duration:21s;animation-delay:-16s}.snow-field i:nth-child(22){left:93%;animation-duration:15s;animation-delay:-8s}@keyframes snowfall{to{transform:translate3d(45px,112vh,0) rotate(180deg)}}.site-header{display:flex;align-items:center;justify-content:space-between;width:min(1180px,calc(100% - 48px));margin:0 auto;padding:26px 0 14px;position:relative;z-index:5}.brand{min-height:44px;display:grid;grid-template-columns:32px auto;align-items:center;column-gap:10px;border:0;background:none;color:var(--cream);text-align:left;padding:0}.brand-mark{width:32px;height:40px;display:grid;place-items:center;color:var(--gold);border:1px solid rgba(225,185,87,.6);border-radius:50% 50% 48% 48%}.brand-name{font:700 27px/1 Fraunces,serif;letter-spacing:-.03em}.site-header nav{display:flex;gap:12px}.nav-link{min-width:44px;min-height:44px;border:0;background:#032e278f;color:var(--cream);border-radius:999px;padding:10px 14px;display:inline-flex;align-items:center;justify-content:center;gap:7px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.nav-link:hover{background:#fff7e624}.music-nav-link[aria-pressed=true]{color:var(--gold)}main{display:grid;align-items:center;padding:24px;position:relative;z-index:1}.demo-ribbon{position:fixed;right:-35px;top:42px;transform:rotate(42deg);width:150px;padding:7px;text-align:center;background:var(--gold);color:var(--spruce-950);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.16em;z-index:20;box-shadow:0 4px 16px #0000002e}.page-enter{animation:page-in .55s cubic-bezier(.2,.75,.25,1) both}@keyframes page-in{0%{opacity:0;transform:translateY(14px)}}.step-animate{animation:step-in .34s ease both}@keyframes step-in{0%{opacity:0;transform:translate(10px)}}.eyebrow{text-transform:uppercase;letter-spacing:.18em;font-weight:700;font-size:11px;color:var(--gold);margin:0 0 13px}.eyebrow span{margin-right:8px}h1,h2,h3,p{margin-top:0}h1,h2{font-family:Fraunces,serif}h1{font-size:clamp(40px,5vw,68px);line-height:.98;letter-spacing:-.045em;margin-bottom:22px}h1 em{color:var(--gold);font-weight:600}.home-stage{width:min(1020px,100%);margin:0 auto;display:grid;grid-template-columns:.83fr 1.17fr;gap:clamp(28px,6vw,80px);align-items:center;padding:42px 0 62px}.hero-copy{text-shadow:0 3px 22px rgba(0,25,20,.45)}.hero-intro{max-width:440px;font-size:18px;line-height:1.65;color:#fff7e6db}.paper-card{background:var(--cream);color:var(--ink);border:1px solid rgba(225,185,87,.7);box-shadow:var(--shadow),inset 0 0 0 7px #f2e7cc94;position:relative}.role-card{border-radius:24px;padding:46px 38px 34px}.ribbon-knot{position:absolute;top:-23px;left:50%;width:52px;height:45px;transform:translate(-50%)}.ribbon-knot:before,.ribbon-knot:after{content:"";position:absolute;top:0;width:31px;height:26px;background:var(--cranberry);border:3px solid var(--cranberry-dark)}.ribbon-knot:before{left:0;border-radius:80% 20% 70% 30%;transform:rotate(-28deg)}.ribbon-knot:after{right:0;border-radius:20% 80% 30% 70%;transform:rotate(28deg)}.ribbon-knot span{position:absolute;z-index:2;left:19px;top:12px;width:16px;height:16px;border-radius:50%;background:var(--gold);border:3px solid var(--cranberry-dark)}.role-heading{display:flex;align-items:center;gap:13px;justify-content:center;margin-bottom:23px;color:#73684e}.role-heading p{margin:0;font:600 14px/1.3 Fraunces,serif;text-align:center}.ornament-line{height:1px;flex:1;max-width:70px;background:#d9c99f}.role-options{display:grid;grid-template-columns:1fr 1fr;gap:14px}.role-option{border-radius:16px;padding:23px 20px 18px;min-height:260px;border:1px solid transparent;display:flex;flex-direction:column;align-items:flex-start;text-align:left;color:var(--cream);transition:transform .2s ease,box-shadow .2s ease}.role-option:hover{transform:translateY(-4px);box-shadow:0 13px 24px #0e342b2e}.giver-option{background:var(--cranberry)}.recipient-option{background:var(--spruce-800)}.role-icon{width:54px;height:54px;display:grid;place-items:center;border-radius:50%;background:#ffffff21;margin-bottom:24px}.role-icon svg{width:27px;height:27px}.role-kicker{text-transform:uppercase;font-size:9px;font-weight:800;letter-spacing:.17em;opacity:.74}.role-option strong{font:650 22px/1.05 Fraunces,serif;margin:7px 0 9px}.role-option small{line-height:1.45;opacity:.78}.role-action{margin-top:auto;display:inline-flex;align-items:center;gap:7px;font-weight:700;font-size:13px}.flow-stage{width:min(790px,100%);margin:0 auto;padding:24px 0 54px}.flow-title{text-align:center;max-width:690px;margin:0 auto 25px;text-shadow:0 3px 18px rgba(0,25,20,.4)}.flow-title h1{font-size:clamp(34px,5vw,53px);margin-bottom:0}.flow-card{border-radius:24px;overflow:hidden}.stepper{list-style:none;margin:0;padding:24px 58px 20px;display:grid;grid-template-columns:repeat(4,1fr);background:#f3ead6;border-bottom:1px solid #dfd1ae}.stepper li{position:relative;text-align:center;color:#aaa28f}.stepper li:not(:last-child):after{content:"";position:absolute;top:12px;left:calc(50% + 14px);right:calc(-50% + 14px);height:1px;background:#d7ceb9}.stepper li.done:not(:last-child):after{background:var(--cranberry)}.stepper li>span{position:relative;z-index:1;width:25px;height:25px;display:grid;place-items:center;margin:0 auto 6px;background:#d7ceb9;color:#fff;border-radius:50%;font-size:11px;font-weight:800}.stepper li.active>span{background:var(--cranberry);box-shadow:0 0 0 5px #c936321f}.stepper li.done>span{background:var(--spruce-800)}.stepper small{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em}.stepper .active small{color:var(--cranberry-dark)}.stepper .done small{color:var(--spruce-800)}.flow-body{padding:32px 52px 36px;min-height:390px}.panel-heading{display:flex;gap:14px;align-items:flex-start;margin-bottom:27px}.heading-icon{flex:0 0 auto;width:40px;height:40px;display:grid;place-items:center;border-radius:50%;background:#e4f0e8;color:var(--spruce-800)}.panel-heading p{margin:0 0 4px;color:var(--cranberry);text-transform:uppercase;letter-spacing:.13em;font-size:9px;font-weight:800}.panel-heading h2{font-size:29px;line-height:1.05;margin:0 0 6px;letter-spacing:-.025em}.panel-heading div>span{color:var(--muted);font-size:13px}.field-label,.subheading{display:block;font-weight:800;font-size:12px;text-transform:uppercase;letter-spacing:.08em;margin-bottom:9px}.message-input{width:100%;min-height:154px;resize:vertical;border:1px solid #b8b29f;border-radius:12px;padding:17px;background:#fffdfa;color:var(--ink);line-height:1.6;box-shadow:inset 0 2px 3px #2e382d0a}.message-input::placeholder,input::placeholder{color:#a9a697}.message-input:focus,.code-fields input:focus,.unlock-card input:focus,.edit-login input:focus{border-color:var(--spruce-800)}.character-count{display:flex;justify-content:space-between;gap:20px;margin-top:8px;color:var(--muted);font-size:11px}.character-count strong{font-variant-numeric:tabular-nums}.character-count.near-limit strong{color:var(--cranberry)}.effect-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.effect-option{position:relative;border:1px solid #d1c8ae;border-radius:14px;background:#fffcf4;color:var(--ink);padding:18px 12px 16px;min-height:145px;text-align:left;transition:border-color .2s,transform .2s}.effect-option:hover{transform:translateY(-2px);border-color:var(--spruce-800)}.effect-option.selected{background:var(--spruce-800);color:var(--cream);border-color:var(--spruce-800)}.effect-option>span{width:43px;height:43px;border-radius:50%;display:grid;place-items:center;background:#e4f0e8;color:var(--spruce-800);margin-bottom:15px}.effect-option.selected>span{color:var(--cream);background:#ffffff1f}.effect-option strong,.effect-option small{display:block}.effect-option strong{display:block;font:650 18px/1 Fraunces,serif;margin-bottom:7px}.effect-option small{display:block;font-size:11px;opacity:.72;line-height:1.35}.effect-option>i{position:absolute;right:10px;top:10px;width:20px;height:20px;display:grid;place-items:center;border-radius:50%;background:var(--gold);color:var(--spruce-950)}.code-explainer{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:19px}.code-explainer>div{display:flex;gap:10px;padding:11px;border-radius:10px;background:#edf4ec;color:var(--spruce-800)}.code-explainer span{font-size:11px;line-height:1.4;color:#647067}.code-explainer strong{display:block;color:var(--spruce-800)}.code-fields{display:grid;grid-template-columns:1fr 1fr;gap:15px}.code-fields label>span{display:flex;justify-content:space-between;align-items:baseline;font-size:12px;font-weight:800;margin-bottom:7px}.code-fields label small{color:var(--muted);font-weight:500}.code-fields input,.unlock-card input,.edit-login input{width:100%;border:1px solid #b8b29f;border-radius:10px;background:#fffdfa;color:var(--ink);padding:14px;font-weight:700;letter-spacing:.06em}.code-fields .code-note{display:block;margin-top:7px;color:var(--muted);font-size:10px;font-weight:500;line-height:1.4}.field-status{min-height:18px;margin-top:7px;display:flex;align-items:center;gap:5px;font-size:10px}.field-status.idle{color:var(--muted)}.field-status.checking{color:#8b7135}.field-status.available{color:#18734e}.field-status.unavailable{color:var(--cranberry-dark)}.field-status.checking svg{animation:spin 1s linear infinite}.text-button{border:0;background:transparent;color:var(--spruce-800);padding:11px 0;font-weight:700;font-size:12px;display:inline-flex;gap:7px;align-items:center}.text-button:hover{color:var(--cranberry)}.flow-actions{border-top:1px solid #e0d5bd;background:#f8f0df;padding:18px 52px;display:flex;justify-content:space-between;gap:14px}.primary-button,.secondary-button,.danger-button{border-radius:999px;min-height:46px;padding:0 22px;border:1px solid transparent;display:inline-flex;align-items:center;justify-content:center;gap:9px;font-weight:800;font-size:13px;transition:transform .18s,background .18s}.primary-button{background:var(--cranberry);color:#fff;box-shadow:0 7px 16px #9e252633}.primary-button:hover:not(:disabled){transform:translateY(-2px);background:var(--cranberry-dark)}.primary-button:disabled{opacity:.45;box-shadow:none}.primary-button.wide{width:100%}.secondary-button{background:transparent;border-color:#c8bfa8;color:#696557}.secondary-button:hover{background:#fffaf0}.danger-button{background:transparent;color:var(--cranberry-dark);border-color:#dba7a1}.notice{display:flex;align-items:flex-start;gap:9px;border-radius:10px;padding:12px 14px;margin-bottom:18px;font-size:12px;line-height:1.45}.notice svg{width:17px;height:17px;flex:0 0 auto}.notice.error{background:var(--danger-bg);color:#8d2929}.notice.success{background:#e2f1e6;color:#256a46}.notice.compact{margin:12px 0}.completion{text-align:center;padding:18px 0 2px}.completion-icon{width:62px;height:62px;margin:0 auto 20px;display:grid;place-items:center;border-radius:50%;background:var(--spruce-800);color:var(--cream);box-shadow:0 0 0 9px #e4eee6}.completion h2{font-size:34px;margin-bottom:10px}.completion>p:not(.eyebrow):not(.expiry-note){color:var(--muted)}.saved-codes{display:grid;grid-template-columns:1fr 1fr;gap:11px;margin:25px 0 14px;text-align:left}.saved-codes>div{position:relative;border:1px dashed #c3b68f;background:#fffdf7;padding:14px;border-radius:10px}.saved-codes span{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin-bottom:5px}.saved-codes strong{font:700 18px/1 Figtree,sans-serif;letter-spacing:.08em}.saved-codes strong{user-select:all;-webkit-user-select:all}.saved-codes button{position:absolute;right:8px;bottom:8px;border:0;background:#e7efe9;color:var(--spruce-800);width:30px;height:30px;border-radius:50%;display:grid;place-items:center}.expiry-note{color:var(--muted);font-size:10px;margin-bottom:22px}.recipient-stage{width:min(900px,100%);margin:0 auto;display:grid;grid-template-columns:1fr 430px;align-items:center;gap:clamp(30px,8vw,90px);padding:50px 0 80px}.recipient-copy>p:last-child,.edit-intro>p:last-child{color:#fff7e6c9;max-width:440px;font-size:17px;line-height:1.6}.unlock-card,.edit-login{border-radius:23px;padding:48px 36px 33px}.hanging-tag{position:absolute;width:58px;height:58px;display:grid;place-items:center;border-radius:50%;top:-29px;left:50%;transform:translate(-50%);background:var(--cranberry);color:#fff;border:6px solid var(--cream-deep)}.unlock-card>label,.edit-login>label{display:block;text-align:center;font:650 25px/1.1 Fraunces,serif;margin-bottom:19px}.unlock-input-wrap{position:relative;margin-bottom:13px}.unlock-input-wrap input{padding-right:45px;text-align:center;font-size:18px}.unlock-input-wrap>svg{position:absolute;right:15px;top:50%;transform:translateY(-50%);color:var(--gold)}.demo-hint{width:100%;border:0;background:none;color:#777060;margin-top:12px;font-size:10px}.demo-hint strong{color:var(--spruce-800);letter-spacing:.08em;margin-left:4px}.reveal-scene{width:min(760px,100%);min-height:520px;margin:12px auto 55px;display:grid;place-items:center;position:relative}.message-reveal{width:min(610px,100%);text-align:center;background:var(--cream);color:var(--ink);border:1px solid var(--gold);box-shadow:var(--shadow),inset 0 0 0 8px var(--cream-deep);border-radius:22px;padding:50px 60px 35px;position:relative}.message-star{position:absolute;top:-23px;left:50%;transform:translate(-50%);width:48px;height:48px;display:grid;place-items:center;border-radius:50%;background:var(--gold);color:var(--spruce-950);font-size:22px}.message-reveal blockquote{font:600 clamp(24px,4vw,37px)/1.32 "Fraunces",serif;margin:27px 0;white-space:pre-wrap}.message-signoff{display:flex;align-items:center;justify-content:center;gap:13px;color:var(--cranberry);font:600 13px/1 Fraunces,serif}.message-signoff span{width:40px;height:1px;background:#d9c99f}.text-button.light{margin-top:30px;color:#706b60}.effect-option{overflow:hidden;isolation:isolate}.effect-option:before{content:"";position:absolute;inset:0;z-index:-1;background-position:center;background-size:cover;opacity:.08;transition:opacity .2s ease}.effect-option:hover:before,.effect-option.selected:before{opacity:.16}.effect-gift:before{background:radial-gradient(circle at 50% 38%,var(--gold) 0 9%,transparent 10%),linear-gradient(135deg,var(--cranberry),var(--spruce-800))}.effect-letter:before{background:linear-gradient(145deg,var(--cream) 0 58%,var(--cranberry) 59% 64%,var(--gold) 65%)}.effect-scratch:before{background-image:url(/effects/scratch-card-cover-v2.png)}.effect-status{position:absolute;z-index:6;margin:0;color:#fff4dad1;font-size:11px;letter-spacing:.04em;transition:opacity .25s ease}.effect-status.is-hidden{opacity:0}.simple-reveal-stage{width:min(720px,100%);min-height:520px;position:relative;display:grid;place-items:center;overflow:hidden;border-radius:28px;isolation:isolate;background:radial-gradient(circle at 50% 38%,rgba(228,185,87,.12),transparent 34%),linear-gradient(180deg,#163f36,#062d27);box-shadow:0 35px 90px #00000047,inset 0 0 0 1px #e4b95752;animation:simple-stage-in .65s ease both}@keyframes simple-stage-in{0%{opacity:0;transform:translateY(18px) scale(.97)}}.simple-inner-message{z-index:3;width:min(570px,86%);opacity:0;transform:translateY(20px) scale(.88);pointer-events:none;transition:opacity .7s .72s ease,transform .8s .68s cubic-bezier(.2,.8,.2,1)}.simple-reveal-stage.is-open .simple-inner-message{opacity:1;transform:translateY(0) scale(1);pointer-events:auto}.simple-status{bottom:20px;left:50%;transform:translate(-50%);width:100%;text-align:center}.simple-reveal-stage.is-open .simple-status{opacity:0}.ambient-magic{position:absolute;inset:0;z-index:1;overflow:hidden;pointer-events:none;transition:opacity .45s ease}.reading-snow{position:absolute;inset:0;z-index:2;width:100%;height:100%;opacity:0;pointer-events:none;transition:opacity .48s ease}.reading-snow.is-active{opacity:1}.ambient-magic i{position:absolute;width:5px;height:5px;border-radius:50%;background:var(--gold);box-shadow:0 0 9px currentColor;opacity:.5;animation:ambient-float ease-in-out infinite alternate}@keyframes ambient-float{0%{transform:translate3d(-4px,9px,0) scale(.7);opacity:.18}to{transform:translate3d(8px,-14px,0) scale(1.2);opacity:.75}}.ambient-letter i{top:-14px!important;width:4px;height:4px;color:var(--ice);background:var(--cream);animation-name:gentle-snow;animation-timing-function:linear;animation-iteration-count:infinite}@keyframes gentle-snow{0%{transform:translate3d(-8px,-20px,0);opacity:0}12%{opacity:.75}to{transform:translate3d(22px,550px,0) rotate(180deg);opacity:.2}}.ambient-gift b{position:absolute;width:4px;height:4px;border-radius:50%;color:var(--gold);background:currentColor;opacity:0;box-shadow:0 -18px currentColor,13px -13px var(--ice),18px 0 currentColor,13px 13px var(--cranberry),0 18px currentColor,-13px 13px var(--ice),-18px 0 currentColor,-13px -13px var(--cranberry);animation:tiny-firework 5.8s ease-out infinite}@keyframes tiny-firework{0%,72%{opacity:0;transform:scale(.12)}78%{opacity:.75}94%,to{opacity:0;transform:scale(1)}}.gift-box-stage{--gift-size: min(263px, 74vw)}.gift-letter-card{position:absolute;z-index:3;left:50%;top:50%;width:min(330px,76vw,calc(66.667vh - 64px));aspect-ratio:2 / 3;color:#493626;opacity:0;transform:translate3d(-50%,calc(-50% + 116px),0) scale(.42);transform-origin:center;pointer-events:none;transition:opacity .32s ease,transform .88s cubic-bezier(.16,1,.3,1);will-change:transform,opacity}.gift-letter-card-art{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 22px 30px rgba(0,0,0,.24));-webkit-user-select:none;user-select:none;pointer-events:none}.gift-letter-card-copy{position:absolute;z-index:1;inset:17% 10% 18%;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:auto;padding:4px 8px;text-align:center}.gift-letter-card-copy .eyebrow{margin-bottom:8px;color:#a32e27;font-size:clamp(8px,1.2vw,11px)}.gift-letter-card-copy blockquote{max-width:100%;margin:8px 0 13px;color:#3d372d;font:600 clamp(15px,2.25vw,27px)/1.3 "Fraunces",serif;overflow-wrap:anywhere;white-space:pre-wrap}.gift-letter-card-copy .message-signoff{font-size:clamp(9px,1.2vw,13px)}.gift-letter-close-button{position:absolute;z-index:3;top:5.2%;right:5.2%;width:44px;height:44px;display:grid;place-items:center;padding:0;border:1px solid rgba(163,46,39,.36);border-radius:50%;background:#fff9edf0;color:#a32e27;box-shadow:0 8px 20px #46221229;font:400 28px/1 Figtree,sans-serif;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:transform .2s ease,background-color .2s ease,box-shadow .2s ease}.gift-letter-close-button:hover{background:#fff9ed;transform:scale(1.05);box-shadow:0 10px 24px #46221233}.gift-letter-close-button:focus-visible{outline:3px solid var(--gold);outline-offset:3px}.gift-letter-close-button:active{transform:scale(.96)}.warm-glow{position:absolute;z-index:2;width:130px;height:96px;border-radius:50%;background:radial-gradient(circle,rgba(255,250,226,.98),rgba(228,185,87,.48) 38%,transparent 72%);filter:blur(7px);opacity:0;transform:translateY(38px) scale(.35);pointer-events:none}.gift-light-rays{position:absolute;z-index:2;width:290px;aspect-ratio:1;border-radius:50%;background:repeating-conic-gradient(from 4deg,rgba(255,225,145,.2) 0 7deg,transparent 7deg 24deg);-webkit-mask-image:radial-gradient(circle,transparent 0 17%,#000 42%,transparent 72%);mask-image:radial-gradient(circle,transparent 0 17%,#000 42%,transparent 72%);opacity:0;transform:translateY(-3px) scale(.35) rotate(-8deg);pointer-events:none}.gift-spark-burst{position:absolute;z-index:4;left:50%;top:45%;width:1px;height:1px;pointer-events:none}.gift-spark-burst i{--spark-angle: 0deg;--spark-distance: 105px;position:absolute;width:5px;height:5px;border-radius:50%;background:#f4cf70;box-shadow:0 0 8px #f4cf70e6;opacity:0}.gift-spark-burst i:nth-child(1){--spark-angle: 0deg;--spark-distance: 112px}.gift-spark-burst i:nth-child(2){--spark-angle: 30deg;--spark-distance: 92px;background:#fff2c2}.gift-spark-burst i:nth-child(3){--spark-angle: 60deg;--spark-distance: 118px;background:#ce5352}.gift-spark-burst i:nth-child(4){--spark-angle: 90deg;--spark-distance: 96px}.gift-spark-burst i:nth-child(5){--spark-angle: 120deg;--spark-distance: 108px;background:#8cc4aa}.gift-spark-burst i:nth-child(6){--spark-angle: 150deg;--spark-distance: 88px}.gift-spark-burst i:nth-child(7){--spark-angle: 180deg;--spark-distance: 114px;background:#fff2c2}.gift-spark-burst i:nth-child(8){--spark-angle: 210deg;--spark-distance: 94px;background:#ce5352}.gift-spark-burst i:nth-child(9){--spark-angle: 240deg;--spark-distance: 108px}.gift-spark-burst i:nth-child(10){--spark-angle: 270deg;--spark-distance: 90px;background:#8cc4aa}.gift-spark-burst i:nth-child(11){--spark-angle: 300deg;--spark-distance: 116px}.gift-spark-burst i:nth-child(12){--spark-angle: 330deg;--spark-distance: 98px;background:#fff2c2}.gift-package{position:relative;z-index:4;width:var(--gift-size);height:var(--gift-size);border:0;padding:0;background:transparent;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transform-origin:50% 78%;animation:gift-awaiting 2.6s ease-in-out infinite;transition:opacity .38s ease,transform .58s cubic-bezier(.22,1,.36,1),filter .3s ease}.gift-package:focus-visible{outline:3px solid var(--gold);outline-offset:7px;border-radius:14px}.gift-package:disabled{pointer-events:none}.gift-package-lid-art,.gift-package-body-art{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;-webkit-user-select:none;user-select:none;pointer-events:none;filter:drop-shadow(0 19px 18px rgba(0,0,0,.2));will-change:transform,opacity}.gift-package-body-art{z-index:1;clip-path:polygon(0 43%,100% 43%,100% 100%,0 100%);transform-origin:50% 72%;transition:transform .62s cubic-bezier(.22,1,.36,1),filter .4s ease}.gift-package-lid-art{z-index:2;clip-path:polygon(0 0,100% 0,100% 49%,0 49%);transform-origin:50% 45%;transition:transform .72s cubic-bezier(.16,1,.3,1),opacity .34s ease,filter .35s ease}@keyframes gift-awaiting{0%,to{transform:translateY(0) rotate(0)}46%{transform:translateY(-5px) rotate(0)}51%{transform:translateY(-5px) rotate(-1.2deg)}56%{transform:translateY(-5px) rotate(1.2deg)}61%{transform:translateY(-5px) rotate(0)}}.gift-phase-untying .gift-package{animation:gift-untie-shiver .26s ease both}@keyframes gift-untie-shiver{35%{transform:rotate(-1.5deg) scale(.99)}70%{transform:rotate(1.5deg) scale(1.01)}}.gift-phase-opening .gift-package,.gift-phase-glowing .gift-package,.gift-phase-pulling .gift-package,.gift-phase-reading .gift-package{animation-play-state:paused}.gift-phase-opening .gift-package-lid-art,.gift-phase-glowing .gift-package-lid-art,.gift-phase-pulling .gift-package-lid-art,.gift-phase-reading .gift-package-lid-art{transform:translate3d(-36px,-90px,0) rotate(-14deg) scale(.98)}.gift-phase-glowing .warm-glow,.gift-phase-pulling .warm-glow{animation:warm-bloom 1.25s ease-out both}.gift-phase-glowing .gift-light-rays,.gift-phase-pulling .gift-light-rays{animation:gift-rays-open 1.2s ease-out both}.gift-phase-glowing .gift-spark-burst i,.gift-phase-pulling .gift-spark-burst i{animation:gift-spark-flight .9s ease-out both}.gift-phase-glowing .gift-package-body-art,.gift-phase-pulling .gift-package-body-art{filter:brightness(1.08) drop-shadow(0 19px 18px rgba(0,0,0,.2));transform:scaleX(1.035)}@keyframes warm-bloom{42%{opacity:1}to{opacity:0;transform:translateY(-58px) scale(4.2)}}@keyframes gift-rays-open{35%{opacity:.72}to{opacity:0;transform:translateY(-22px) scale(1.45) rotate(7deg)}}@keyframes gift-spark-flight{0%{opacity:0;transform:rotate(var(--spark-angle)) translateY(0) scale(.4)}18%{opacity:1}to{opacity:0;transform:rotate(var(--spark-angle)) translateY(calc(0px - var(--spark-distance))) scale(1)}}.gift-phase-pulling .gift-letter-card{opacity:1;transform:translate3d(-50%,calc(-50% - 54px),0) scale(.72)}.gift-phase-pulling .gift-package{opacity:0;transform:translate3d(0,92px,0) scale(.78);transition-delay:.48s,.42s,0s}.gift-phase-reading .gift-package{opacity:0;transform:translate3d(0,92px,0) scale(.78)}.gift-phase-reading .gift-letter-card{z-index:5;opacity:1;transform:translate3d(-50%,-50%,0) scale(1);pointer-events:auto}.gift-phase-reading .ambient-gift{opacity:.38}.reveal-scene.reveal-letter{width:min(980px,100%)}.vintage-letter-stage{width:min(940px,100%);min-height:clamp(570px,78vh,760px);--reading-scale: 1.05;overflow:visible}.letter-reading-backdrop{position:absolute;inset:0;z-index:2;background:#101e1961;opacity:0;border-radius:inherit;pointer-events:none;transition:opacity .4s ease-out}.envelope-ground-shadow{position:absolute;z-index:2;left:50%;top:calc(45% + clamp(170px,37vw,305px));width:min(540px,68%);height:32px;border-radius:50%;background:radial-gradient(ellipse,rgba(0,0,0,.38),rgba(0,0,0,.12) 48%,transparent 73%);filter:blur(3px);opacity:.72;transform:translate(-50%) scaleX(1);transform-origin:center;animation:envelope-shadow-breathe 2.8s ease-in-out infinite;transition:width .55s ease,opacity .55s ease,transform .55s ease,filter .55s ease;pointer-events:none}@keyframes envelope-shadow-breathe{50%{transform:translate(-50%) scaleX(.96);opacity:.62}}.vintage-envelope-composition{position:absolute;z-index:3;left:50%;top:45%;width:min(760px,90vw);aspect-ratio:3 / 2;perspective:1200px;transform:translate3d(-50%,-45%,0);transform-style:preserve-3d;will-change:transform;filter:drop-shadow(0 20px 22px rgba(0,0,0,.24));animation:vintage-envelope-breathe 2.8s ease-in-out infinite;transition:transform .55s cubic-bezier(.22,1,.36,1),filter .55s ease}@keyframes vintage-envelope-breathe{50%{transform:translate3d(-50%,calc(-45% - 3px),0)}}.christmas-envelope-art{position:absolute;inset:0;z-index:3;transform-style:preserve-3d;transition:opacity .36s ease,transform .5s ease;-webkit-user-select:none;user-select:none;pointer-events:none}.christmas-envelope-art[hidden],.christmas-envelope-pocket-inside[hidden]{display:none!important}.christmas-envelope-shell,.christmas-envelope-top-edge,.christmas-envelope-flap,.christmas-envelope-flap-front,.christmas-envelope-flap-inside,.christmas-envelope-pocket-inside{position:absolute;inset:0;width:100%;height:100%;-webkit-user-select:none;user-select:none;pointer-events:none}.christmas-envelope-shell,.christmas-envelope-top-edge,.christmas-envelope-flap-front{object-fit:contain}.christmas-envelope-shell{z-index:3;clip-path:polygon(0 0,5% 0,50% 71%,95% 0,100% 0,100% 100%,0 100%)}.christmas-envelope-top-edge{z-index:5;clip-path:polygon(2.5% 3%,97.5% 3%,97.5% 7.4%,2.5% 7.4%)}.christmas-envelope-flap{z-index:4;clip-path:polygon(5% 6.7%,95% 6.7%,50% 71%);transform:rotateX(0) translateZ(1px);transform-origin:50% 6.7%;transform-box:border-box;transform-style:preserve-3d;will-change:transform;transition:transform .52s cubic-bezier(.45,0,.2,1),opacity .36s ease}.christmas-envelope-flap-front{z-index:2;backface-visibility:hidden}.christmas-envelope-flap-inside{z-index:1;backface-visibility:hidden;transform:rotateX(180deg);background:radial-gradient(circle,rgba(184,55,46,.1) 0 1.3px,transparent 1.8px) 0 0 / 28px 28px,linear-gradient(160deg,#f8e8cc,#ecd1a7);box-shadow:inset 0 12px 28px #54321a24}.christmas-envelope-pocket-inside{z-index:1;clip-path:polygon(4.7% 6.3%,95.3% 6.3%,50% 71.2%);background:radial-gradient(circle,rgba(184,55,46,.08) 0 1.2px,transparent 1.7px) 0 0 / 28px 28px,linear-gradient(160deg,#fff9ed,#f5e5c9 72%,#ead0a8);box-shadow:inset 0 10px 24px #54321a1f;transform-origin:center;transition:opacity .36s ease,transform .5s ease}.vintage-letter-mask{position:absolute;inset:0;clip-path:inset(-120% 0 0 0);opacity:0;pointer-events:none;transition:opacity .3s ease}.vintage-letter-sheet{position:absolute;z-index:2;left:50%;top:50%;width:58%;height:auto;aspect-ratio:2 / 3;color:#493626;transform:translate3d(-50%,8%,0) scale(.4675) rotate(-.35deg);transform-origin:50% 50%;opacity:0;transition:transform 1s cubic-bezier(.16,1,.3,1),filter .8s ease-out,opacity .35s ease-out;will-change:transform;pointer-events:none}.vintage-letter-sheet>img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;-webkit-user-select:none;user-select:none;pointer-events:none}.vintage-letter-copy{position:absolute;z-index:1;inset:17% 10% 18%;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:auto;padding:4px 8px;text-align:center;opacity:0;transition:opacity .3s ease}.vintage-letter-copy .eyebrow{margin-bottom:8px;color:#a32e27;font-size:clamp(8px,1.2vw,11px)}.vintage-letter-copy blockquote{max-width:100%;margin:8px 0 13px;color:#3d372d;font:600 clamp(15px,2.25vw,27px)/1.3 "Fraunces",serif;overflow-wrap:anywhere;white-space:pre-wrap}.vintage-letter-copy .message-signoff{font-size:clamp(9px,1.2vw,13px)}.vintage-letter-copy .text-button{display:inline-flex;align-items:center;gap:6px;margin-top:13px;padding:8px 10px;font-size:11px}.letter-close-button{position:absolute;z-index:3;top:6%;right:5%;width:44px;height:44px;display:grid;place-items:center;padding:0;border:1px solid rgba(137,48,36,.35);border-radius:50%;background:#fff7e6eb;color:#9e3029;box-shadow:0 7px 18px #46221224;font:400 27px/1 Figtree,sans-serif;opacity:0;transform:scale(.82);pointer-events:none;transition:opacity .25s ease,transform .25s ease}.envelope-open-trigger{position:absolute;z-index:6;inset:0;width:100%;height:100%;padding:0;border:0;background:transparent;border-radius:4px;cursor:pointer;touch-action:manipulation;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.envelope-open-trigger:focus-visible{outline:3px solid var(--gold);outline-offset:7px}.envelope-open-trigger:disabled{pointer-events:none}.vintage-letter-status{z-index:10;bottom:19px;left:50%;width:100%;text-align:center;transform:translate(-50%)}.phase-closed .vintage-letter-mask,.phase-opening-seal .vintage-letter-mask{opacity:0}.phase-opening-flap .vintage-envelope-composition,.phase-pulling-letter .vintage-envelope-composition,.phase-letter-free .vintage-envelope-composition,.phase-centering-letter .vintage-envelope-composition,.phase-reading .vintage-envelope-composition,.phase-closing .vintage-envelope-composition{animation-play-state:paused;transform:translate3d(-50%,calc(-45% + 18px),0);filter:drop-shadow(0 13px 16px rgba(0,0,0,.22))}.phase-opening-flap .envelope-ground-shadow{width:min(430px,57%);transform:translate(-50%) scaleX(.9);opacity:.58;animation-play-state:paused}.phase-pulling-letter .envelope-ground-shadow,.phase-letter-free .envelope-ground-shadow{width:min(330px,45%);transform:translate(-50%) scaleX(.78);opacity:.4;filter:blur(5px);animation-play-state:paused}.phase-opening-seal .vintage-envelope-composition{animation:envelope-touch-response .28s cubic-bezier(.2,.8,.2,1) both}@keyframes envelope-touch-response{45%{transform:translate3d(-50%,-44%,0) scale(.985);filter:drop-shadow(0 14px 15px rgba(0,0,0,.2)) brightness(1.025)}to{transform:translate3d(-50%,-45%,0) scale(1)}}.phase-opening-flap .christmas-envelope-flap,.phase-pulling-letter .christmas-envelope-flap,.phase-letter-free .christmas-envelope-flap,.phase-centering-letter .christmas-envelope-flap,.phase-reading .christmas-envelope-flap{z-index:1;transform:rotateX(-180deg) translateZ(0);filter:drop-shadow(0 -2px 2px rgba(77,45,24,.12))}.phase-pulling-letter .vintage-letter-mask{z-index:2;opacity:1}.phase-pulling-letter .vintage-letter-sheet{z-index:2;opacity:1;transform:translate3d(-50%,-38%,0) scale(.612) rotate(0);transition:transform .62s cubic-bezier(.16,1,.3,1),opacity .18s ease}.phase-letter-free .vintage-letter-mask,.phase-centering-letter .vintage-letter-mask,.phase-reading .vintage-letter-mask{z-index:8;opacity:1;clip-path:none}.phase-letter-free .vintage-letter-sheet{z-index:8;opacity:1;transform:translate3d(-50%,-38%,0) scale(.612) rotate(0)}.phase-centering-letter .vintage-letter-sheet,.phase-reading .vintage-letter-sheet{z-index:8;opacity:1;transform:translate3d(-50%,-50%,0) scale(var(--reading-scale)) rotate(0);filter:drop-shadow(0 12px 20px rgba(0,0,0,.18));pointer-events:auto;transition:transform .72s cubic-bezier(.22,1,.36,1),filter .55s ease-out,opacity .28s ease-out}.phase-centering-letter .letter-reading-backdrop,.phase-reading .letter-reading-backdrop{opacity:1}.phase-centering-letter .letter-reading-backdrop{transition-delay:.16s}.phase-reading .letter-reading-backdrop{transition-delay:0s}.phase-centering-letter .envelope-ground-shadow,.phase-reading .envelope-ground-shadow{width:min(250px,34%);opacity:0;transform:translate(-50%) scaleX(.7);animation-play-state:paused}.phase-centering-letter .christmas-envelope-art,.phase-reading .christmas-envelope-art,.phase-centering-letter .christmas-envelope-pocket-inside,.phase-reading .christmas-envelope-pocket-inside{opacity:0;transform:translateY(28px) scale(.94)}.phase-reading .christmas-envelope-art,.phase-reading .christmas-envelope-art *,.phase-reading .christmas-envelope-pocket-inside{visibility:hidden}.phase-reading .vintage-letter-copy{opacity:1;transition-delay:.12s}.phase-reading .letter-close-button{opacity:1;transform:scale(1);pointer-events:auto;transition-delay:.16s}.phase-reading .vintage-letter-status,.phase-closing .vintage-letter-status,.phase-closing .letter-reading-backdrop{opacity:0}.phase-closing .envelope-ground-shadow{width:min(430px,57%);opacity:.54;transform:translate(-50%) scaleX(.9);animation-play-state:paused}.phase-closing .vintage-letter-mask{z-index:8;opacity:0;transition-delay:.22s}.phase-closing .vintage-letter-sheet{opacity:0;transform:translate3d(-50%,-42%,0) scale(.76) rotate(0)}.phase-closing .vintage-letter-copy,.phase-closing .letter-close-button{opacity:0;pointer-events:none;transition-delay:0s}.phase-closing .christmas-envelope-art,.phase-closing .christmas-envelope-pocket-inside{visibility:visible;opacity:1;transform:none;animation:envelope-layers-return .36s .38s both}@keyframes envelope-layers-return{0%{opacity:0;transform:translateY(28px) scale(.94)}to{opacity:1;transform:none}}.phase-closing .christmas-envelope-flap{z-index:4;opacity:1;transform:rotateX(0) translateZ(1px);transition-delay:.5s}@media(hover:hover)and (pointer:fine){.phase-closed .vintage-envelope-composition:hover{filter:drop-shadow(0 24px 25px rgba(0,0,0,.29))}}.phase-reading .ambient-letter{opacity:0}.reveal-scene.reveal-scratch{width:min(760px,100%)}.scratch-experience{position:relative;isolation:isolate;width:100%;display:grid;justify-items:center;text-align:center}.scratch-experience .reading-snow{z-index:0}.scratch-message{position:relative;z-index:1;width:min(520px,92vw,calc(66.667vh - 86.667px));aspect-ratio:2 / 3;max-width:100%;overflow:hidden;isolation:isolate;border-radius:2.1%;filter:drop-shadow(0 28px 32px rgba(0,0,0,.3));animation:scratch-card-arrive .65s cubic-bezier(.2,.8,.2,1) both;transition:transform .42s ease,filter .42s ease}@keyframes scratch-card-arrive{0%{opacity:0;transform:translateY(24px) rotate(-1.2deg) scale(.95)}}.scratch-card-art{position:absolute;inset:0;z-index:0;width:100%;height:100%;object-fit:cover;-webkit-user-select:none;user-select:none;pointer-events:none}.scratch-content-region{position:absolute;z-index:1;left:11.71875%;top:28.515625%;width:76.5625%;height:50%;overflow:hidden;border-radius:8%}.scratch-secret-content{position:absolute;inset:7% 8%;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:auto;padding:clamp(10px,2vw,20px) clamp(9px,2.2vw,22px);color:#473829;scrollbar-width:thin;scrollbar-color:rgba(159,55,42,.35) transparent;transition:opacity .38s ease,transform .38s ease}.scratch-secret-content blockquote{max-width:100%;margin:0;font:600 clamp(14px,3.2vw,23px)/1.38 "Fraunces",serif;overflow-wrap:anywhere;white-space:pre-wrap}.scratch-secret-content.is-medium blockquote{font-size:clamp(12px,2.8vw,19px)}.scratch-secret-content.is-long{justify-content:flex-start;padding-top:clamp(12px,2.4vw,24px);padding-bottom:clamp(12px,2.4vw,24px)}.scratch-secret-content.is-long blockquote{font-size:clamp(10px,2.35vw,16px)}.scratch-cover{position:absolute;inset:0;z-index:2;width:100%;height:100%;border-radius:inherit;pointer-events:none;opacity:1;transition:opacity .46s ease-out}.scratch-hit-area{position:absolute;z-index:3;left:11.71875%;top:28.515625%;width:76.5625%;height:50%;border-radius:8%;cursor:grab;touch-action:none;-webkit-tap-highlight-color:transparent}.state-scratchLocked .scratch-hit-area,.state-scratchCompleted .scratch-hit-area{pointer-events:none}.state-scratching .scratch-message{transform:scale(1.002);filter:drop-shadow(0 30px 35px rgba(0,0,0,.32))}.state-scratching .scratch-hit-area{cursor:grabbing}.scratch-hit-area:focus-visible{outline:3px solid #fff3c9;outline-offset:-6px}.scratch-cover.scratch-complete{opacity:0;pointer-events:none;animation:none}.scratch-revealed .scratch-secret-content{animation:scratch-message-settle .4s ease-out both}@keyframes scratch-message-settle{0%{opacity:.97;transform:scale(.99)}}.scratch-hint{position:absolute;z-index:3;left:34%;top:49%;width:32%;height:3px;border-radius:999px;background:#fffae3c7;box-shadow:0 0 8px #fff7dac7;transform:rotate(-8deg) scaleX(0);transform-origin:left;pointer-events:none;animation:scratch-hint-stroke 1.5s ease-in-out infinite}@keyframes scratch-hint-stroke{35%,65%{opacity:.85;transform:rotate(-8deg) scaleX(1)}to{opacity:0;transform:rotate(-8deg) scaleX(1)}}.scratch-controls{min-height:68px;display:flex;align-items:center;justify-content:center;gap:18px;color:#fff7e6c7;font-size:11px;flex-wrap:wrap}.scratch-progress-wrap{display:flex;align-items:center;gap:9px}.scratch-progress{width:96px;height:5px;overflow:hidden;border-radius:999px;background:#fff4da2e}.scratch-progress>span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--ice),var(--gold));transition:width .22s ease}.scratch-controls .text-button.light{margin-top:0;color:var(--cream)}.edit-stage{width:min(880px,100%);margin:0 auto;display:grid;grid-template-columns:1fr 390px;gap:80px;align-items:center;padding:50px 0 80px}.large-icon{width:72px;height:72px;display:grid;place-items:center;border:1px solid rgba(225,185,87,.7);border-radius:50%;color:var(--gold);margin-bottom:24px}.large-icon svg{width:32px;height:32px}.edit-login{padding-top:37px}.edit-login>label{text-align:left;font-size:22px}.edit-login>p{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:10px;line-height:1.4;margin:9px 0 17px}.edit-workspace{max-width:840px}.edit-body{min-height:0}.subheading{margin-top:26px}.split-actions{align-items:center}.spin{animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:820px){.home-stage,.recipient-stage,.edit-stage{grid-template-columns:1fr;max-width:600px;gap:32px;padding-top:30px}.hero-copy,.recipient-copy,.edit-intro{text-align:center}.hero-intro,.recipient-copy>p:last-child,.edit-intro>p:last-child{margin-left:auto;margin-right:auto}.large-icon{margin-left:auto;margin-right:auto}}@media(max-width:820px)and (orientation:portrait){.scene{overflow:hidden;background:radial-gradient(circle at 50% 16%,rgba(18,91,73,.24),transparent 38%),radial-gradient(circle at 50% 72%,rgba(3,71,58,.32),transparent 44%),linear-gradient(180deg,#073d33,#003a31 54%,#062f29)}.scene:before,.scene:after{content:"";position:absolute;left:0;right:0;pointer-events:none;background-color:transparent;background-image:url(/christmas-frame.png);background-repeat:no-repeat;background-size:max(620px,155vw) auto;opacity:.96}.scene:before{top:0;height:min(38vh,340px);height:min(38svh,340px);background-position:center top;-webkit-mask-image:linear-gradient(to bottom,#000 0 70%,transparent 100%);mask-image:linear-gradient(to bottom,#000 0 70%,transparent 100%)}.scene:after{top:auto;bottom:0;height:min(42vh,380px);height:min(42svh,380px);background-position:center bottom;-webkit-mask-image:linear-gradient(to top,#000 0 72%,transparent 100%);mask-image:linear-gradient(to top,#000 0 72%,transparent 100%)}}@media(max-width:620px){.site-header{width:calc(100% - 28px - env(safe-area-inset-left) - env(safe-area-inset-right));padding-top:max(17px,env(safe-area-inset-top))}.site-header nav{gap:5px}.nav-link{padding:9px;font-size:0}.nav-link svg{width:18px;height:18px}main{padding:16px max(14px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left))}footer{width:calc(100% - 28px);flex-direction:column;align-items:center;text-align:center}.role-card{padding:44px 20px 22px}.role-options{grid-template-columns:1fr}.role-option{min-height:215px}.flow-body{padding:26px 21px 30px}.flow-actions{padding:15px 20px}.stepper{padding:20px 18px 16px}.stepper small{font-size:8px}.effect-grid{grid-template-columns:1fr}.effect-option{min-height:100px;display:grid;grid-template-columns:50px 1fr;column-gap:10px;align-items:center}.effect-option>span{grid-row:1 / 3;margin:0}.effect-option strong,.effect-option small{grid-column:2}.code-fields,.code-explainer,.saved-codes{grid-template-columns:1fr}.unlock-card,.edit-login{padding-left:22px;padding-right:22px}.message-reveal{padding:48px 26px 30px}.simple-reveal-stage{min-height:500px;border-radius:20px}.simple-inner-message{width:91%}.gift-box-stage{--gift-size: min(263px, 78vw)}.gift-letter-card-copy{inset:16% 9% 18%}.gift-letter-card-copy blockquote{font-size:clamp(14px,4.3vw,19px)}.vintage-letter-stage{min-height:min(680px,calc(100vh - 32px));min-height:min(680px,calc(100svh - 32px));--reading-scale: 1.42}.vintage-envelope-composition{width:92vw}.vintage-letter-copy{inset:16% 9% 18%}.vintage-letter-copy blockquote{font-size:clamp(14px,4.3vw,19px)}.vintage-letter-copy .text-button{margin-top:8px;font-size:10px}.letter-close-button{width:40px;height:40px;top:4%;right:3%}.reveal-scene.reveal-scratch{min-height:0;margin:4px auto max(18px,env(safe-area-inset-bottom))}.scratch-message{width:min(430px,calc(100vw - 28px),calc(66.667vh - 126.667px - env(safe-area-inset-top) - env(safe-area-inset-bottom)))}.scratch-controls{min-height:58px;flex-direction:column;gap:4px;padding:10px 0 max(4px,env(safe-area-inset-bottom))}.split-actions{flex-direction:column-reverse}.split-actions button{width:100%}h1{font-size:42px}}@supports (height: 100svh){.gift-letter-card{width:min(330px,76vw,calc(66.667svh - 64px))}.scratch-message{width:min(520px,92vw,calc(66.667svh - 86.667px))}@media(max-width:620px){.scratch-message{width:min(430px,calc(100vw - 28px),calc(66.667svh - 126.667px - env(safe-area-inset-top) - env(safe-area-inset-bottom)))}}@media(max-height:520px)and (orientation:landscape){.vintage-letter-stage{min-height:calc(100svh - 24px)}.vintage-envelope-composition{width:min(76vw,calc(150svh - 156px))}.vintage-letter-status{bottom:7px}.reveal-scene.reveal-scratch{margin:0 auto 12px}.scratch-experience{grid-template-columns:minmax(0,1fr) minmax(112px,168px);justify-items:center;align-items:center;gap:12px}.scratch-message{width:min(240px,calc(100vw - 190px - env(safe-area-inset-left) - env(safe-area-inset-right)),calc(66.667svh - 64px - env(safe-area-inset-top) - env(safe-area-inset-bottom)))}.scratch-controls{min-height:0;padding:0 max(6px,env(safe-area-inset-right)) 0 0}}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}.simple-inner-message,.gift-letter-card,.gift-package,.gift-package-lid-art,.gift-package-body-art,.vintage-letter-sheet,.christmas-envelope-art,.christmas-envelope-flap,.letter-reading-backdrop,.letter-close-button,.scratch-cover{transition-duration:.01ms!important;transition-delay:0ms!important}.snow-field,.ambient-magic{display:none}.reading-snow{transition:none}.reading-snow.is-active{opacity:.62}}
