:root{--bg:#141612;--bg-deep:#0e100e;--bg-elevated:#1c1f1a;--oxblood:#6b1420;--oxblood-soft:#8a1c2a;--emerald:#0b3d2e;--emerald-soft:#1a5c44;--emerald-glow:#2a7a58;--brass:#c4a574;--brass-dim:#8a7350;--brass-hairline:#c4a57459;--paper:#d4c4a8;--paper-deep:#c4b18f;--ink:#2a1f18;--ink-soft:#4a3b30;--cream:#e8dcc8;--text-muted:#e8dcc88c;--text:#e8dcc8;--envelope:#1a2e26;--envelope-flap:#0f221c;--font-serif:"Cormorant Garamond", "Palatino Linotype", Palatino, Georgia, serif;--font-sans:"Outfit", "Gill Sans", "Trebuchet MS", sans-serif;--ease-out:cubic-bezier(.22, 1, .36, 1)}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);min-height:100dvh;color:var(--text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;margin:0;font-weight:300;line-height:1.5;overflow-x:hidden}#root{min-height:100dvh}button,input{font:inherit}button{cursor:pointer;color:inherit;background:0 0;border:none}button:focus-visible,a:focus-visible{outline:2px solid var(--brass);outline-offset:4px}img{max-width:100%;display:block}.has-custom-cursor,.has-custom-cursor *{cursor:none!important}.cursor{z-index:9999;pointer-events:none;opacity:0;margin:-12px 0 0 -12px;transition:opacity .2s;position:fixed;top:0;left:0}.cursor--visible{opacity:1}.cursor__ring{width:24px;height:24px;transition:transform .2s var(--ease-out), border-color .2s ease;border:1px solid #c4a574a6;border-radius:50%;display:block}.cursor__dot{background:var(--emerald-glow);border-radius:50%;width:4px;height:4px;margin:-2px 0 0 -2px;position:absolute;top:50%;left:50%;box-shadow:0 0 6px #2a7a5880}.cursor--active .cursor__ring{border-color:var(--oxblood-soft);transform:scale(.72)}.app{background:radial-gradient(ellipse 110% 70% at 50% -15%, #0b3d2e47, transparent 55%), radial-gradient(ellipse 90% 55% at 100% 100%, #6b142033, transparent 50%), radial-gradient(ellipse 70% 50% at 0% 85%, #0b3d2e2e, transparent 45%), radial-gradient(ellipse 50% 40% at 80% 20%, #6b14201f, transparent 40%), var(--bg);min-height:100dvh;position:relative}.app__vignette{pointer-events:none;z-index:50;background:radial-gradient(#0000 38%,#080a0899 100%);position:fixed;inset:0}.ambient-canvas{z-index:1;pointer-events:none;opacity:.9;position:fixed;inset:0}.lilies{z-index:2;pointer-events:none;position:fixed;inset:0;overflow:hidden}.lily{opacity:.55;filter:drop-shadow(0 4px 12px #00000059);animation:9s ease-in-out infinite lily-sway;position:absolute}.lily--a{width:4.5rem;animation-delay:0s;bottom:-.5rem;left:-.25rem;transform:rotate(-18deg)}.lily--b{opacity:.4;width:3.6rem;animation-delay:-2s;bottom:1.5rem;left:2.8rem;transform:rotate(12deg)}.lily--c{width:5rem;animation-delay:-1.2s;bottom:-.75rem;right:-.5rem;transform:rotate(22deg)scaleX(-1)}.lily--d{opacity:.38;width:3.2rem;animation-delay:-4s;top:12%;right:.5rem;transform:rotate(8deg)}.lily--e{opacity:.32;width:2.8rem;animation-delay:-3s;top:8%;left:.75rem;transform:rotate(-28deg)}.lily--f{opacity:.28;width:3.8rem;animation-delay:-5.5s;bottom:28%;right:-.75rem;transform:rotate(35deg)scaleX(-1)}@keyframes lily-sway{0%,to{translate:0}50%{translate:0 -4px}}@media (width>=640px){.lily--a{width:6rem;left:1rem}.lily--b{width:4.5rem;left:5rem}.lily--c{width:6.5rem;right:1rem}.lily--d{width:4rem;right:2rem}.lily--e{width:3.5rem;left:2rem}.lily--f{width:5rem}}.landing{z-index:3;text-align:center;place-items:center;min-height:100dvh;padding:2rem 1.5rem 3rem;display:grid;position:relative}.landing__vignette{pointer-events:none;background:radial-gradient(circle at 50% 42%,#0b3d2e38,#0000 55%),radial-gradient(circle at 70% 60%,#6b14202e,#0000 45%),radial-gradient(circle at 25% 75%,#0b3d2e24,#0000 40%);position:absolute;inset:0}.landing__content{max-width:28rem;position:relative}.landing__eyebrow{letter-spacing:.28em;text-transform:uppercase;color:var(--emerald-glow);opacity:.75;margin:0 0 1rem;font-size:.75rem;font-weight:400}.landing__title{font-family:var(--font-serif);letter-spacing:.02em;color:var(--cream);text-shadow:0 2px 40px #0b3d2e59,0 2px 28px #6b142040;margin:0;font-size:clamp(2.75rem,12vw,4.5rem);font-weight:500;line-height:1.05}.landing__rule{background:linear-gradient(90deg, transparent, var(--emerald-soft), var(--brass), var(--oxblood-soft), transparent);transform-origin:50%;width:4.5rem;height:1px;margin:1.75rem auto 2.5rem}.wax-seal{background:radial-gradient(circle at 35% 30%, #8a1c2a 0%, var(--oxblood) 42%, #3d0a12 100%);width:5.5rem;height:5.5rem;transition:filter .3s var(--ease-out);border-radius:50%;place-items:center;margin:0 auto;display:grid;position:relative;box-shadow:0 0 0 3px #0b3d2ea6,0 0 0 4px #c4a57440,0 4px #2a080e,0 8px 24px #00000073,inset 0 2px 4px #ffc8b41f,inset 0 -3px 8px #00000059}.wax-seal:hover{filter:brightness(1.08)}.wax-seal:focus-visible{outline:1px solid var(--brass);outline-offset:6px}.wax-seal__ring{border:1px solid #c4a57473;border-radius:50%;position:absolute;inset:.45rem;box-shadow:inset 0 0 0 1px #0003}.wax-seal__label{font-family:var(--font-serif);letter-spacing:.12em;text-transform:uppercase;color:var(--cream);text-shadow:0 1px 2px #0006;font-size:1.05rem;font-weight:500;position:relative}.gate{z-index:3;place-items:center;min-height:100dvh;padding:2rem 1.25rem;display:grid;position:relative}.gate__panel{text-align:center;border:1px solid var(--brass-hairline);background:#0e100ec7;width:min(100%,22rem);padding:2.25rem 1.5rem;box-shadow:0 0 0 1px #0b3d2e40,0 20px 60px #0006}.gate__lock{color:var(--brass);opacity:.85;margin-bottom:1rem}.gate__prompt{font-family:var(--font-serif);color:var(--cream);margin:0 0 1.5rem;font-size:1.35rem;font-style:italic}.gate__form{flex-direction:column;gap:.85rem;display:flex}.gate__input{background:var(--bg-deep);border:1px solid var(--emerald-soft);width:100%;color:var(--cream);letter-spacing:.08em;text-align:center;border-radius:0;outline:none;padding:.85rem 1rem;transition:border-color .25s}.gate__input::placeholder{color:var(--text-muted);letter-spacing:.12em}.gate__input:focus{border-color:var(--brass)}.gate__submit{color:var(--emerald-glow);letter-spacing:.2em;text-transform:uppercase;border:1px solid #2a7a5873;padding:.75rem 1rem;font-size:.7rem;font-weight:400;transition:background .25s,color .25s}.gate__submit:hover,.gate__submit:focus-visible{color:var(--cream);background:#0b3d2e59}.gate__hint{color:var(--oxblood-soft);font-size:.8rem;font-family:var(--font-serif);margin:1rem 0 0;font-style:italic}.archive-wrap{z-index:3;min-height:100dvh;position:relative}.archive{width:min(100%,36rem);margin:0 auto;padding:2.5rem 1.15rem 4rem}.archive__header{text-align:center;margin-bottom:2.5rem}.archive__eyebrow{letter-spacing:.28em;text-transform:uppercase;color:var(--emerald-glow);opacity:.7;margin:0 0 .65rem;font-size:.68rem}.archive__title{font-family:var(--font-serif);color:var(--cream);letter-spacing:.02em;margin:0;font-size:clamp(2rem,8vw,2.75rem);font-weight:500}.archive__count{font-family:var(--font-serif);color:var(--emerald-glow);opacity:.9;margin:.85rem 0 0;font-size:1.05rem;font-style:italic}.archive__rule{background:linear-gradient(90deg, transparent, var(--emerald-soft), var(--oxblood-soft), transparent);width:3.5rem;height:1px;margin:1.35rem auto 0}.archive__month+.archive__month{margin-top:2rem}.month-tab{align-items:center;gap:.85rem;margin-bottom:1rem;padding:0 .25rem;display:flex}.month-tab__label{letter-spacing:.18em;text-transform:uppercase;color:var(--emerald-glow);flex-shrink:0;margin:0;font-size:.68rem;font-weight:400}.month-tab__line{background:linear-gradient(90deg,#2a7a588c,#6b142040,#0000);flex:1;height:1px}.archive__cards{flex-direction:column;gap:1.35rem;display:flex}.archive__footer{text-align:center;margin-top:3.5rem}.archive__footer p{font-family:var(--font-serif);color:var(--text-muted);margin:0;font-size:.95rem;font-style:italic}.status-msg{text-align:center;font-family:var(--font-serif);color:var(--text-muted);margin:0;padding:40vh 1.5rem;font-size:1.2rem;font-style:italic}.status-msg--error{color:var(--oxblood-soft)}.letter-card{transform:translateX(var(--card-x,0)) rotate(var(--card-rot,0deg));transform-origin:50%;perspective:1100px}.letter-card__scene{min-height:11.5rem;position:relative}.letter-card__flipper{width:100%;min-height:11.5rem;transform-style:preserve-3d;transition:transform .7s var(--ease-out);position:relative}.letter-card--flipped .letter-card__flipper{transform:rotateY(180deg)}.letter-card__face{backface-visibility:hidden;position:absolute;inset:0}.letter-card__face--front{z-index:2}.letter-card__face--back{transform:rotateY(180deg)}.letter-card__paper{border:1px solid var(--brass-hairline);height:100%;min-height:11.5rem;color:var(--ink);background:linear-gradient(145deg,#d4c4a8f7,#c4b18ff2);flex-direction:column;padding:1.35rem 1.25rem 1.1rem;display:flex;position:relative;overflow:hidden;box-shadow:0 1px #c4a57433,0 10px 28px #00000059,inset 0 0 40px #5a3c1e14}.letter-card__grain{pointer-events:none;opacity:.22;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-size:140px 140px;position:absolute;inset:0}.letter-card__date{letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);opacity:.7;font-size:.68rem;font-family:var(--font-sans);margin-bottom:.45rem;font-weight:400;display:block;position:relative}.letter-card__title{font-family:var(--font-serif);color:var(--ink);margin:0 0 .45rem;font-size:1.5rem;font-weight:600;line-height:1.15;position:relative}.letter-card__preview{font-family:var(--font-serif);color:var(--ink-soft);-webkit-line-clamp:2;-webkit-box-orient:vertical;flex:1;margin:0;font-size:1.02rem;line-height:1.4;display:-webkit-box;position:relative;overflow:hidden}.letter-card__photos{letter-spacing:.12em;text-transform:uppercase;color:var(--emerald);font-size:.65rem;font-family:var(--font-sans);margin-top:.55rem;display:inline-block;position:relative}.letter-card__actions{justify-content:space-between;align-items:center;gap:.75rem;margin-top:.9rem;display:flex;position:relative}.letter-card__flip-btn{letter-spacing:.16em;text-transform:uppercase;color:var(--emerald);font-size:.62rem;font-family:var(--font-sans);opacity:.85;padding:.25rem 0;font-weight:400;transition:opacity .2s}.letter-card__flip-btn:hover,.letter-card__flip-btn:focus-visible{opacity:1}.letter-card__flip-btn--light{color:#a8d2bad9}.letter-card__open{letter-spacing:.22em;text-transform:uppercase;color:var(--oxblood);font-size:.65rem;font-family:var(--font-sans);padding:.25rem 0;font-weight:400}.letter-card__open:hover,.letter-card__open:focus-visible{color:var(--oxblood-soft)}.letter-card__open--seal{color:var(--brass);border:1px solid #c4a57466;padding:.4rem .75rem}.letter-card__open--seal:hover,.letter-card__open--seal:focus-visible{color:var(--cream);background:#0b3d2e59}@media (hover:hover){.letter-card__paper,.letter-card__envelope{transition:box-shadow .25s var(--ease-out), translate .25s var(--ease-out)}.letter-card:hover .letter-card__paper,.letter-card:hover .letter-card__envelope{translate:0 -2px;box-shadow:0 1px #c4a5743d,0 14px 32px #0000006b,inset 0 0 40px #5a3c1e14}}.letter-card__envelope{background:linear-gradient(160deg, #243d34 0%, var(--envelope) 50%, #12201a 100%);height:100%;min-height:11.5rem;color:var(--cream);border:1px solid #2a7a5873;position:relative;overflow:hidden;box-shadow:0 1px #c4a57426,0 10px 28px #0006,inset 0 0 50px #0003}.letter-card__envelope-flap{background:linear-gradient(180deg, var(--envelope-flap), transparent);clip-path:polygon(0 0,50% 85%,100% 0);opacity:.9;border-bottom:1px solid #c4a57433;height:2.75rem;position:absolute;top:0;left:0;right:0}.letter-card__envelope-body{z-index:1;flex-direction:column;min-height:11.5rem;padding:2.4rem 1.25rem 1.1rem;display:flex;position:relative}.letter-card__envelope-label{letter-spacing:.22em;text-transform:uppercase;color:var(--emerald-glow);opacity:.8;margin:0 0 .35rem;font-size:.58rem}.letter-card__envelope-date{letter-spacing:.14em;text-transform:uppercase;color:var(--brass);opacity:.75;font-size:.68rem;font-family:var(--font-sans);margin-bottom:.65rem;display:block}.letter-card__tease{font-family:var(--font-serif);color:var(--cream);flex:1;margin:0;font-size:1.15rem;font-style:italic;line-height:1.4}.letter-card__actions--back{margin-top:1rem}.letter-view{z-index:100;perspective:1200px;-webkit-overflow-scrolling:touch;justify-content:center;align-items:flex-start;padding:.75rem;display:flex;position:fixed;inset:0;overflow-y:auto}.letter-view__backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:0;background:#080a08cc;position:fixed;inset:0}.letter-view__sheet{z-index:1;background:linear-gradient(160deg, #ddd0b4 0%, var(--paper) 40%, var(--paper-deep) 100%);width:min(100%,34rem);color:var(--ink);transform-style:preserve-3d;transform-origin:top;border:1px solid #c4a57473;margin:1.25rem auto 2.5rem;padding:1.75rem 1.35rem 2.5rem;position:relative;box-shadow:0 0 0 1px #0b3d2e1f,0 24px 64px #0000008c,inset 0 0 60px #5a3c1e12}.letter-view__grain{pointer-events:none;opacity:.28;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-size:160px 160px;position:absolute;inset:0}.letter-view__close{z-index:2;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);opacity:.65;align-items:center;margin:0 0 1.25rem;padding:.35rem 0;font-size:.7rem;transition:opacity .2s;display:inline-flex;position:relative}.letter-view__close:hover,.letter-view__close:focus-visible{opacity:1}.letter-view__header{text-align:center;margin-bottom:1.75rem;position:relative}.letter-view__header time{letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);opacity:.65;font-size:.7rem;font-family:var(--font-sans);margin-bottom:.5rem;display:block}.letter-view__header h2{font-family:var(--font-serif);color:var(--ink);margin:0;font-size:clamp(1.75rem,6vw,2.35rem);font-weight:600;line-height:1.15}.letter-view__rule{background:linear-gradient(90deg, transparent, var(--emerald-soft), var(--oxblood-soft), transparent);width:3rem;height:1px;margin:1.1rem auto 0}.letter-view__body{position:relative}.letter-view__para{font-family:var(--font-serif);color:var(--ink);margin:0 0 1.15rem;font-size:clamp(1.15rem,3.8vw,1.3rem);font-weight:400;line-height:1.65}.letter-view__para:first-of-type:first-letter{color:var(--emerald);font-size:1.35em;font-weight:500}.polaroid{width:min(72%,16rem);transform:rotate(var(--pol-rot,-1.5deg));transition:transform .3s var(--ease-out);background:#f4efe6;margin:1.75rem auto;padding:.55rem .55rem 1.6rem;position:relative;box-shadow:0 2px 4px #2a1f181f,0 12px 28px #2a1f182e}.polaroid:hover{transform:rotate(var(--pol-rot,-1.5deg)) scale(1.02)}.polaroid__hit{text-align:left;width:100%;padding:0;display:block}.polaroid img{aspect-ratio:1;object-fit:cover;filter:sepia(.12)contrast(.96);background:#c8bda8;width:100%}.polaroid--missing{display:none}.tape{z-index:2;background:linear-gradient(#d4c4968c,#c4af7866);border:1px solid #a08c5a40;width:2.4rem;height:.85rem;position:absolute;box-shadow:0 1px 2px #00000014}.tape--tl{top:-.35rem;left:.65rem;transform:rotate(-18deg)}.tape--tr{top:-.25rem;right:.55rem;transform:rotate(14deg)}.lightbox{z-index:200;place-items:center;padding:1.25rem;display:grid;position:fixed;inset:0}.lightbox__backdrop{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:radial-gradient(#0b3d2e26,#0000 55%),#060806eb;position:absolute;inset:0}.lightbox__frame{z-index:1;background:#f0ebe0;width:min(100%,28rem);padding:.65rem .65rem 2.25rem;position:relative;box-shadow:0 0 0 1px #c4a57459,0 24px 80px #000000a6}.lightbox__frame img{object-fit:contain;filter:sepia(.08)contrast(.98);background:#1a1210;width:100%;max-height:min(70dvh,32rem)}.lightbox__close{letter-spacing:.22em;text-transform:uppercase;color:var(--ink-soft);opacity:.7;font-size:.65rem;position:absolute;bottom:.55rem;left:50%;transform:translate(-50%)}.lightbox__close:hover,.lightbox__close:focus-visible{opacity:1;color:var(--emerald)}@media (width>=640px){.archive{padding:3.5rem 1.5rem 5rem}.letter-card__paper,.letter-card__envelope-body{padding-left:1.5rem;padding-right:1.5rem}.letter-view{padding:1.5rem}.letter-view__sheet{margin-top:2rem;padding:2.5rem 2.5rem 3rem}.gate__form{flex-direction:row;align-items:stretch}.gate__input{flex:1}.gate__submit{flex-shrink:0;padding-inline:1.25rem}}@media (prefers-reduced-motion:reduce){.lily{animation:none}.letter-card__flipper{transition:none}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
