:root{color:#fbf9ff;font-synthesis:none;text-rendering:optimizelegibility;--ink:#171329;--ink-soft:#241e3d;--paper:#fbf9ff;--lilac:#bca6ff;--coral:#ff745e;--line:#fff3;background:#171329;font-family:Aptos,Segoe UI,system-ui,sans-serif}*{box-sizing:border-box}html{background:var(--ink)}body{min-width:320px;min-height:100dvh;margin:0}button,input,textarea{font:inherit}button{color:inherit}.app-shell{isolation:isolate;min-height:100dvh;padding:max(1.2rem, env(safe-area-inset-top)) max(1.25rem, env(safe-area-inset-right)) max(1.25rem, env(safe-area-inset-bottom)) max(1.25rem, env(safe-area-inset-left));background:linear-gradient(155deg, #bca6ff14, transparent 42%), radial-gradient(circle at 88% 72%, #ff745e1a, transparent 34%), var(--ink);position:relative;overflow:hidden}.app-shell:after{content:"";z-index:-1;opacity:.16;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 140 140' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.18'/%3E%3C/svg%3E");position:absolute;inset:0}.ambient{z-index:-1;filter:blur(1px);opacity:.9;border-radius:999px;position:absolute}.ambient--one{border:1px solid #bca6ff52;width:11rem;height:11rem;top:18%;right:-7rem;box-shadow:0 0 80px #bca6ff14}.ambient--two{border:1px solid #ff745e38;width:16rem;height:16rem;bottom:4%;left:-12rem}.topbar{justify-content:space-between;align-items:center;width:min(100%,34rem);margin:0 auto;display:flex}.wordmark,.quiet-link,.back-button{cursor:pointer;background:0 0;border:0}.wordmark{align-items:center;gap:.7rem;padding:.25rem 0;font-family:Georgia,Times New Roman,serif;font-size:1.45rem;font-weight:600;display:inline-flex}.gift-mark{width:1.45rem;height:1.45rem;display:inline-block;position:relative;transform:rotate(-4deg)}.gift-mark__box,.gift-mark__lid{background:var(--coral);width:1.25rem;position:absolute;left:.1rem}.gift-mark__box{border-radius:.12rem;height:.9rem;bottom:0}.gift-mark__lid{border-radius:.12rem;height:.28rem;top:.1rem}.gift-mark__ribbon{left:.62rem;background:var(--paper);opacity:.9;width:.22rem;position:absolute;inset-block:0}.quiet-link{color:#ffffffb8;padding:.7rem 0;font-size:.92rem}.kept-private{color:#ffffff7a;letter-spacing:.04em;font-size:.76rem}.home-panel,.form-panel,.object-panel,.review-panel,.sent-panel,.receive-intro,.received-list{width:min(100%,34rem);margin:clamp(4.5rem,13vh,8rem) auto 0;animation:.5s cubic-bezier(.2,.75,.2,1) both arrive}.object-panel,.review-panel,.sent-panel,.received-list{margin-top:clamp(2.3rem,7vh,4.5rem)}.eyebrow,.step-count{color:var(--lilac);letter-spacing:.14em;text-transform:uppercase;font-size:.78rem;font-weight:600}.eyebrow{align-items:center;gap:.65rem;display:flex}.eyebrow span{background:currentColor;width:1.5rem;height:1px}h1{letter-spacing:-.045em;text-wrap:balance;max-width:10ch;margin:1.25rem 0 1.4rem;font-family:Georgia,Times New Roman,serif;font-size:clamp(2.9rem,13vw,5.35rem);line-height:.96}h1 em{color:var(--lilac);font-weight:600}.intro,.form-panel>p{color:#ffffffb3;max-width:31rem;margin:0 0 2.2rem;font-size:1.05rem;line-height:1.65}.primary-action{background:var(--coral);color:#1b1020;cursor:pointer;border:0;border-radius:1rem;justify-content:space-between;align-items:center;width:100%;min-height:4.35rem;padding:.7rem .75rem .7rem 1.35rem;font-size:1.04rem;font-weight:600;transition:transform .18s,background .18s;display:flex;box-shadow:0 1rem 3rem #ff745e29}.primary-action:hover{background:#ff846f;transform:translateY(-2px)}.primary-action:active{transform:translateY(0)}.primary-action:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid var(--paper);outline-offset:3px}.action-arrow{background:#17132924;border-radius:.75rem;place-items:center;width:3rem;height:3rem;font-size:1.35rem;display:grid}.how-it-works{border-top:1px solid var(--line);grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:2.6rem;padding-top:1.35rem;display:grid}.how-it-works div{flex-direction:column;gap:.35rem;display:flex}.how-it-works strong{color:var(--lilac);letter-spacing:.1em;font-size:.7rem}.how-it-works span{color:#ffffffc2;font-size:.91rem}.privacy-note{color:#ffffff6b;margin:2rem 0 0;font-size:.78rem}.form-panel{margin-top:clamp(2.6rem,8vh,5rem)}.form-panel h1{margin-top:1.6rem;font-size:clamp(2.55rem,11vw,4.6rem)}.back-button{color:#ffffffb8;margin:0 0 2.6rem -.3rem;padding:.5rem .3rem}.back-button span{margin-right:.4rem}form{gap:.7rem;display:grid}label{color:#ffffffd1;margin-top:.7rem;font-size:.88rem;font-weight:600}label span{color:#ffffff6b;font-weight:400}input{border:1px solid var(--line);width:100%;min-height:3.8rem;color:var(--paper);background:#ffffff0e;border-radius:.85rem;padding:0 1rem;font-size:1rem}input::placeholder{color:#ffffff4d}input:focus{border-color:var(--lilac);outline:2px solid var(--lilac);outline-offset:1px}.form-action{margin-top:1.25rem}.progress{grid-template-columns:auto 1fr;align-items:center;gap:1rem;display:grid}.progress-track{background:#ffffff24;height:2px;overflow:hidden}.progress-track span{background:var(--lilac);height:100%;transition:width .28s;display:block}.object-heading{justify-content:space-between;align-items:flex-start;gap:1rem;margin-top:1.4rem;display:flex}.object-heading h1{margin-top:.65rem}.object-number{color:var(--coral);letter-spacing:.13em;text-transform:uppercase;font-size:.75rem;font-weight:600}.object-limit{border:1px solid var(--line);color:#ffffff9e;border-radius:99px;flex:none;place-items:center;width:3rem;height:3rem;font-size:.8rem;display:grid}.capture-grid{grid-template-columns:1fr;gap:.9rem;display:grid}.capture-box{text-align:center;color:#ffffffc7;background:#ffffff09;border:1px dashed #bca6ff73;border-radius:1.1rem;flex-direction:column;justify-content:center;align-items:center;gap:.45rem;min-height:12rem;padding:1rem;display:flex;position:relative;overflow:hidden}.photo-box{cursor:pointer}.capture-box strong{font-size:.95rem}.capture-box small{color:#ffffff73;font-size:.77rem}.capture-icon{width:2.9rem;height:2.9rem;color:var(--lilac);border:1px solid;border-radius:99px;place-items:center;margin-bottom:.3rem;font-size:1.15rem;display:grid}.capture-icon.mic{color:var(--coral)}.photo-box.has-media{border-style:solid;min-height:18rem;padding:0}.photo-box img{object-fit:cover;width:100%;height:100%;min-height:18rem}.change-chip{background:#171329e0;border-radius:99px;padding:.55rem .75rem;font-size:.74rem;position:absolute;bottom:.75rem;right:.75rem}.audio-box.has-audio{border-style:solid;min-height:9rem}.audio-box audio{width:100%;height:3rem}.record-button,.stop-button,.text-button{cursor:pointer;color:var(--paper);background:0 0;border:0;font-weight:600}.record-button,.stop-button{background:var(--coral);color:var(--ink);border-radius:99px;margin-top:.45rem;padding:.65rem .9rem}.stop-button{background:var(--paper)}.text-button{color:var(--lilac);text-underline-offset:.2rem;text-decoration:underline}.recording-dot{background:var(--coral);border-radius:99px;width:1.1rem;height:1.1rem;animation:1.4s infinite pulse;box-shadow:0 0 #ff745e80}.written-option{gap:.65rem;margin-top:1rem;display:grid}textarea{resize:vertical;border:1px solid var(--line);width:100%;min-height:7rem;color:var(--paper);background:#ffffff0e;border-radius:.85rem;padding:1rem;font-size:1rem;line-height:1.5}textarea::placeholder{color:#ffffff4d}textarea:focus{border-color:var(--lilac);outline:2px solid var(--lilac);outline-offset:1px}.visually-hidden{clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}.inline-error,.success-note{color:#ffd4cd;background:#ff745e1f;border-radius:.75rem;margin:1rem 0;padding:.9rem 1rem;font-size:.87rem;line-height:1.45}.success-note{color:#ddd3ff;background:#bca6ff1f}.object-actions{gap:.75rem;margin-top:1.4rem;display:grid}.secondary-action{border:1px solid var(--line);width:100%;min-height:3.7rem;color:var(--paper);cursor:pointer;background:#ffffff09;border-radius:.9rem;justify-content:space-between;align-items:center;padding:0 1.1rem;font-weight:600;display:flex}.secondary-action:disabled,.primary-action:disabled{cursor:not-allowed;opacity:.38;transform:none}.review-stack{gap:.75rem;margin:1.8rem 0;display:grid}.review-card{border:1px solid var(--line);background:#ffffff0b;border-radius:1rem;grid-template-columns:5.2rem 1fr auto;align-items:center;gap:.9rem;min-height:6.4rem;padding:.55rem .75rem .55rem .55rem;display:grid}.review-card img{object-fit:cover;border-radius:.7rem;width:5.2rem;height:5.2rem}.review-card div{gap:.28rem;min-width:0;display:grid}.review-card div span{color:var(--coral);letter-spacing:.1em;text-transform:uppercase;font-size:.66rem;font-weight:600}.review-card div strong{text-overflow:ellipsis;font-size:.84rem;overflow:hidden}.review-card div small{text-overflow:ellipsis;white-space:nowrap;color:#ffffff6e;overflow:hidden}.review-card button{color:var(--lilac);cursor:pointer;background:0 0;border:0;font-size:.76rem}.consent-note{color:#fff6;text-align:center;max-width:30rem;margin:1rem auto 0;font-size:.72rem;line-height:1.5}.message-screen{text-align:center;width:min(100%,34rem);margin:22vh auto 0}.message-screen h1{max-width:11ch;margin-inline:auto;font-size:clamp(2.5rem,11vw,4.4rem)}.message-screen .intro{margin-inline:auto}.spinner{border:2px solid #ffffff2e;border-top-color:var(--coral);border-radius:99px;width:2.6rem;height:2.6rem;animation:.9s linear infinite spin;display:inline-block}.wrapped-gift{background:#bca6ff14;border:1px solid #bca6ff59;border-radius:50%;place-items:center;width:7.5rem;height:7.5rem;margin-bottom:2rem;display:grid}.wrapped-gift .gift-mark{transform:scale(2.1)rotate(-5deg)}.wrapped-gift.small{width:5.5rem;height:5.5rem;margin-bottom:1.5rem}.wrapped-gift.small .gift-mark{transform:scale(1.55)rotate(-5deg)}.sent-panel h1,.receive-intro h1{font-size:clamp(2.8rem,12vw,4.8rem)}.share-url{border:1px solid var(--line);background:#ffffff0a;border-radius:.8rem;grid-template-columns:1fr auto;align-items:center;gap:.5rem;margin-top:1rem;padding:.5rem .55rem .5rem .9rem;display:grid}.share-url span{text-overflow:ellipsis;white-space:nowrap;color:#ffffff8c;font-size:.78rem;overflow:hidden}.share-url button{color:var(--ink);background:var(--lilac);cursor:pointer;border:0;border-radius:.55rem;padding:.6rem .75rem;font-weight:600}.make-another{justify-content:center;margin-top:2rem}.receive-intro{margin-top:clamp(4rem,13vh,7rem)}.receiver-open{overflow:visible}.received-list{padding-bottom:4rem}.received-list h1{margin-bottom:2.4rem;font-size:clamp(2.7rem,11vw,4.7rem)}.received-card{border:1px solid var(--line);background:var(--ink-soft);border-radius:1.2rem;margin-bottom:1.2rem;animation:.6s cubic-bezier(.2,.75,.2,1) both unwrap;position:relative;overflow:hidden}.received-card img{aspect-ratio:4/3;object-fit:cover;width:100%;max-height:34rem;display:block}.card-number{z-index:1;width:2.6rem;height:2.6rem;color:var(--ink);background:var(--paper);border-radius:50%;place-items:center;font-size:.75rem;font-weight:600;display:grid;position:absolute;top:.8rem;left:.8rem}.received-copy{gap:1rem;padding:1.25rem;display:grid}.received-copy audio{width:100%}.personal-message{color:var(--paper);margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(1.35rem,6vw,2rem);line-height:1.35}.clue{border-top:1px solid var(--line);color:#ffffffa3;margin:0;padding-top:1rem;font-size:.87rem;line-height:1.55}.clue strong{color:var(--lilac)}.gift-finished{border:1px solid var(--line);text-align:center;background:#bca6ff12;border-radius:1.2rem;margin:3rem 0 1rem;padding:2rem}.gift-finished .gift-mark{margin-bottom:1rem;transform:scale(1.35)rotate(-5deg)}.gift-finished h2{margin:1rem 0 .5rem;font-family:Georgia,Times New Roman,serif;font-size:2rem}.gift-finished p{color:#fff9;margin:0;line-height:1.55}.report-link{color:#ffffff5c;cursor:pointer;background:0 0;border:0;margin:2rem auto 0;padding:.5rem;font-size:.72rem;text-decoration:underline;display:block}@keyframes pulse{70%{box-shadow:0 0 0 .75rem #ff745e00}to{box-shadow:0 0 #ff745e00}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes unwrap{0%{opacity:0;transform:translateY(1.5rem)rotate(1deg)}to{opacity:1;transform:none}}@keyframes arrive{0%{opacity:0;transform:translateY(1rem)}to{opacity:1;transform:translateY(0)}}@media (width>=700px){.app-shell{padding-inline:2rem}.home-panel{margin-top:clamp(5rem,14vh,8rem)}.capture-grid{grid-template-columns:1.15fr .85fr}.audio-box{min-height:18rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}
