:root{--ivory:#f8f3e9;--paper:#fffdf8;--ink:#28231e;--soft-ink:#625b51;--brown:#806956;--line:#d9d0c2;--rose:#a77d76}*{box-sizing:border-box}html{background:var(--ivory);min-height:100%}body{min-width:320px;min-height:100vh;color:var(--ink);background:var(--ivory);margin:0;font-family:Arial,Helvetica,sans-serif}a{color:inherit;text-decoration:none}.app-shell{max-width:720px;min-height:100vh;margin:0 auto;padding:24px 24px 106px}.site-header{color:var(--soft-ink);justify-content:space-between;align-items:center;display:flex}.brand{color:var(--ink);letter-spacing:-.04em;align-items:center;gap:9px;font-family:Georgia,Times New Roman,serif;font-size:1.45rem;display:inline-flex}.brand-mark{align-items:center;gap:4px;display:inline-flex}.brand-mark i{background:var(--ink);border-radius:50%;width:7px;height:7px;display:block}.header-note,.auth-link{color:var(--soft-ink);letter-spacing:.04em;font-size:.69rem}.auth-link{border-bottom:1px solid var(--line)}.auth-status{max-width:54%;color:var(--soft-ink);letter-spacing:.04em;align-items:center;gap:10px;font-size:.69rem;display:flex}.auth-status span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.auth-status button{border:0;border-bottom:1px solid var(--line);color:inherit;font:inherit;cursor:pointer;white-space:nowrap;background:0 0;padding:0}.screen-content{padding-top:58px}.eyebrow{color:var(--brown);letter-spacing:.14em;text-transform:uppercase;font-size:.72rem;font-weight:700}.home-space,.home-letter-presence{border-bottom:1px solid var(--line);padding:49px 0 48px}.home-greeting,.story-intro{letter-spacing:-.05em;max-width:19ch;margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(2rem,8vw,3rem);line-height:1.07}.home-subtitle{max-width:26ch;color:var(--soft-ink);margin:18px 0 33px;font-family:Georgia,Times New Roman,serif;font-size:1.08rem;line-height:1.5}.home-note{max-width:34ch;color:var(--soft-ink);margin:28px 0 0;font-family:Georgia,Times New Roman,serif;font-size:.96rem;line-height:1.5}.home-envelope-link{width:max-content;color:var(--ink);justify-items:start;gap:13px;font-size:.85rem;display:grid}.home-envelope{border:1px solid var(--brown);background:var(--paper);width:188px;height:119px;display:block;position:relative;overflow:hidden;box-shadow:0 11px 28px #3e322417}.home-envelope:before,.home-envelope:after{border-top:1px solid var(--line);background:var(--paper);content:"";width:131px;height:76px;position:absolute;top:43px}.home-envelope:before{transform-origin:100% 0;right:-17px;transform:rotate(29deg)}.home-envelope:after{transform-origin:0 0;left:-17px;transform:rotate(-29deg)}.home-envelope i:first-child{z-index:1;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--paper);transform-origin:bottom;width:131px;height:87px;position:absolute;top:-43px;left:50%;transform:translate(-50%)rotate(45deg)}.home-envelope i:last-child{z-index:2;border:1px solid var(--rose);background:var(--rose);width:21px;height:21px;box-shadow:0 0 0 4px var(--paper);border-radius:50%;position:absolute;top:50px;left:50%;transform:translate(-50%)}.primary-action{border:1px solid var(--ink);background:var(--ink);color:var(--ivory);padding:12px 18px;font-size:.9rem;transition:background-color .16s,color .16s;display:inline-block}.primary-action:hover{color:var(--ink);background:0 0}.section-heading{color:var(--soft-ink);letter-spacing:.04em;justify-content:space-between;gap:16px;padding:31px 0 13px;font-size:.72rem;display:flex}.letter-list,.story-period ol{margin:0;padding:0;list-style:none}.letter-list li{border-top:1px solid var(--line);grid-template-columns:102px minmax(0,1fr);gap:4px 12px;padding:17px 0;display:grid}.letter-list li:last-child{border-bottom:1px solid var(--line)}.letter-date,.letter-from{color:var(--soft-ink);font-size:.75rem;line-height:1.45}.letter-title{font-family:Georgia,Times New Roman,serif;font-size:1.05rem;line-height:1.25}.letter-from{grid-column:2}.sample-note{color:var(--brown);margin:24px 0 0;font-size:.72rem;font-style:italic;line-height:1.5}.auth-screen{max-width:480px}.auth-copy{border-bottom:1px solid var(--line);padding:43px 0 31px}.auth-copy h1{letter-spacing:-.05em;max-width:18ch;margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(2rem,8vw,3rem);line-height:1.07}.auth-copy p{max-width:38ch;color:var(--soft-ink);margin:18px 0 0;font-family:Georgia,Times New Roman,serif;font-size:1.05rem;line-height:1.5}.magic-link-form{gap:12px;padding-top:31px;display:grid}.magic-link-form label{color:var(--soft-ink);letter-spacing:.04em;font-size:.76rem}.magic-link-form input{border:1px solid var(--line);width:100%;color:var(--ink);background:var(--paper);font:inherit;border-radius:0;padding:13px 12px}.magic-link-form input:focus{outline:2px solid var(--brown);outline-offset:2px}.magic-link-form .primary-action{cursor:pointer;justify-self:start;margin-top:5px}.magic-link-form .primary-action:disabled{cursor:wait;opacity:.7}.auth-message{max-width:39ch;color:var(--soft-ink);margin:6px 0 0;font-family:Georgia,Times New Roman,serif;font-size:.95rem;line-height:1.45}.auth-message.error{color:#8a4f48}.setup-screen{max-width:520px}.setup-copy{border-bottom:1px solid var(--line);padding:43px 0 31px}.setup-copy h1{letter-spacing:-.05em;max-width:17ch;margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(2rem,8vw,3rem);line-height:1.07}.setup-copy p{max-width:39ch;color:var(--soft-ink);margin:18px 0 0;font-family:Georgia,Times New Roman,serif;font-size:1.05rem;line-height:1.5}.space-setup-form{gap:12px;padding-top:31px;display:grid}.space-setup-form label{color:var(--soft-ink);letter-spacing:.04em;font-size:.76rem}.space-setup-form input{border:1px solid var(--line);width:100%;color:var(--ink);background:var(--paper);font:inherit;border-radius:0;padding:13px 12px}.space-setup-form input:focus{outline:2px solid var(--brown);outline-offset:2px}.space-setup-form .primary-action{cursor:pointer;justify-self:start;margin-top:5px}.space-setup-form .primary-action:disabled,.setup-screen>.primary-action:disabled{cursor:wait;opacity:.7}.setup-screen>.primary-action{cursor:pointer;margin-top:31px}.setup-note,.setup-message{max-width:41ch;color:var(--soft-ink);margin:20px 0 0;font-family:Georgia,Times New Roman,serif;font-size:.95rem;line-height:1.5}.setup-message.error{color:#8a4f48}.letter-paper{background:var(--paper);min-height:440px;margin-top:26px;padding:34px 28px;font-family:Georgia,Times New Roman,serif;box-shadow:0 11px 30px #3e322414}.letter-paper time{color:var(--soft-ink);font-size:.86rem}.salutation{margin:45px 0 0;font-size:1.27rem}.letter-body{resize:vertical;width:100%;min-height:224px;color:var(--ink);background:0 0;border:0;outline:0;margin-top:23px;padding:0;font-family:Georgia,Times New Roman,serif;font-size:1.1rem;line-height:1.72;display:block}.letter-body::placeholder{color:#9a9185;opacity:1}.signature{margin:0;font-size:1.13rem}.write-footer{color:var(--soft-ink);justify-content:space-between;align-items:baseline;gap:16px;margin-top:20px;font-size:.75rem;display:flex}.save-note{margin:0;font-family:Georgia,Times New Roman,serif;font-size:.9rem;font-style:italic}.save-note.error{color:#8a4f48}.unfinished-label{white-space:nowrap;color:var(--brown);letter-spacing:.04em;font-size:.7rem}.finish-link,.text-action{border:0;border-bottom:1px solid var(--brown);color:var(--brown);font:inherit;cursor:pointer;background:0 0;padding:0;font-size:.78rem}.finish-link{white-space:nowrap}.write-next{max-width:38ch;color:var(--soft-ink);margin:36px 0 0;font-family:Georgia,Times New Roman,serif;font-size:.92rem;line-height:1.5}.write-unavailable{border-top:1px solid var(--line);border-bottom:1px solid var(--line);max-width:36ch;margin-top:31px;padding:29px 0 31px}.write-unavailable p{color:var(--soft-ink);margin:0 0 22px;font-family:Georgia,Times New Roman,serif;font-size:1.05rem;line-height:1.5}.review-screen{max-width:560px}.review-heading{border-bottom:1px solid var(--line);padding:28px 0 30px}.review-heading h1,.seal-success h1{letter-spacing:-.05em;max-width:15ch;margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(2rem,8vw,2.75rem);line-height:1.08}.review-heading p,.seal-success p{max-width:38ch;color:var(--soft-ink);margin:16px 0 0;font-family:Georgia,Times New Roman,serif;font-size:1.03rem;line-height:1.5}.review-paper{min-height:0}.review-letter-body{white-space:pre-wrap;min-height:224px;margin:23px 0 0;font-size:1.1rem;line-height:1.72}.review-actions{justify-content:space-between;align-items:center;gap:16px;margin-top:27px;display:flex}.review-actions .primary-action{cursor:pointer}.review-actions .primary-action:disabled,.review-actions .text-action:disabled{cursor:wait;opacity:.7}.delivery-options{border:0;gap:10px;margin:30px 0 0;padding:0;display:grid}.delivery-option{border:1px solid var(--line);background:var(--paper);cursor:pointer;align-items:flex-start;gap:13px;padding:17px 16px;display:flex}.delivery-option.selected{border-color:var(--brown);box-shadow:inset 3px 0 0 var(--brown)}.delivery-option input{width:1.05rem;height:1.05rem;accent-color:var(--brown);margin:2px 0 0}.delivery-option span{gap:5px;display:grid}.delivery-option strong{font-family:Georgia,Times New Roman,serif;font-size:1.08rem;font-weight:400}.delivery-option small{color:var(--soft-ink);font-size:.8rem;line-height:1.4}.delivery-detail{color:var(--soft-ink);letter-spacing:.04em;gap:8px;margin-top:20px;font-size:.76rem;display:grid}.delivery-detail input{border:1px solid var(--line);width:100%;color:var(--ink);background:var(--paper);font:inherit;border-radius:0;padding:13px 12px}.delivery-detail input:focus{outline:2px solid var(--brown);outline-offset:2px}.review-message{max-width:38ch;color:var(--soft-ink);margin:22px 0 0;font-family:Georgia,Times New Roman,serif;font-size:.95rem;line-height:1.5}.review-message.error{color:#8a4f48}.seal-summary{border-top:1px solid var(--line);gap:0;margin:31px 0 0;display:grid}.seal-summary div{border-bottom:1px solid var(--line);grid-template-columns:96px minmax(0,1fr);gap:16px;padding:15px 0;display:grid}.seal-summary dt{color:var(--soft-ink);letter-spacing:.04em;font-size:.74rem}.seal-summary dd{margin:0;font-family:Georgia,Times New Roman,serif;font-size:1rem}.seal-note{max-width:38ch;color:var(--soft-ink);margin:24px 0 0;font-family:Georgia,Times New Roman,serif;font-size:.92rem;line-height:1.5}.seal-success{border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-top:31px;padding:34px 0}.seal-success .primary-action{margin-top:27px}.story-intro{max-width:20ch;margin-top:24px;font-size:clamp(1.75rem,7vw,2.5rem)}.story-empty{border-top:1px solid var(--line);border-bottom:1px solid var(--line);max-width:31ch;color:var(--soft-ink);margin-top:46px;padding:28px 0;font-family:Georgia,Times New Roman,serif;font-size:1.03rem;line-height:1.5}.story-empty p{margin:0}.story-empty .primary-action{margin-top:24px}.story-section{margin-top:43px}.story-section h2{color:var(--brown);letter-spacing:.12em;text-transform:uppercase;margin:0 0 12px;font-size:.71rem}.story-letter-list{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.story-letter-row{border-bottom:1px solid var(--line);grid-template-columns:86px minmax(0,1fr);gap:14px;padding:17px 0;display:grid}.story-letter-row time{color:var(--soft-ink);font-size:.74rem;line-height:1.4}.story-letter-row span{gap:4px;display:grid}.story-letter-row strong{font-family:Georgia,Times New Roman,serif;font-size:1.08rem;font-weight:400;line-height:1.25}.story-letter-row small{color:var(--soft-ink);font-size:.76rem;line-height:1.4}.story-timeline{border-left:1px solid var(--line);margin-top:49px}.story-period{padding:0 0 37px 25px;position:relative}.story-period:before{border:1px solid var(--brown);background:var(--ivory);content:"";border-radius:50%;width:7px;height:7px;position:absolute;top:4px;left:-4px}.story-period h2{color:var(--brown);letter-spacing:.12em;text-transform:uppercase;margin:0 0 15px;font-size:.71rem}.story-period li{border-top:1px solid var(--line);grid-template-columns:33px minmax(0,1fr);gap:15px;padding:13px 0;display:grid}.story-period li time{color:var(--soft-ink);font-size:.82rem}.story-period li p{margin:0;font-family:Georgia,Times New Roman,serif;font-size:1.08rem;line-height:1.3}.story-period li span{color:var(--soft-ink);margin-top:4px;font-size:.75rem;display:block}.opening-screen,.letter-reading-screen{max-width:560px}.sealed-envelope{border:1px solid var(--brown);background:var(--paper);width:min(100%,390px);height:236px;margin-top:43px;position:relative;overflow:hidden;box-shadow:0 11px 30px #3e322414}.sealed-envelope:before,.sealed-envelope:after{border-top:1px solid var(--line);background:var(--paper);content:"";width:275px;height:150px;position:absolute;top:87px}.sealed-envelope:before{transform-origin:100% 0;right:-38px;transform:rotate(29deg)}.sealed-envelope:after{transform-origin:0 0;left:-38px;transform:rotate(-29deg)}.envelope-flap{z-index:1;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--paper);transform-origin:bottom;width:275px;height:184px;position:absolute;top:-87px;left:50%;transform:translate(-50%)rotate(45deg)}.envelope-seal{z-index:2;border:1px solid var(--rose);background:var(--rose);width:29px;height:29px;box-shadow:0 0 0 5px var(--paper);border-radius:50%;position:absolute;top:101px;left:50%;transform:translate(-50%)}.future-envelope{opacity:.76}.opening-copy{padding:30px 0 27px}.opening-copy h1{letter-spacing:-.05em;max-width:16ch;margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(2rem,8vw,2.75rem);line-height:1.08}.opening-copy p{max-width:34ch;color:var(--soft-ink);margin:16px 0 0;font-family:Georgia,Times New Roman,serif;font-size:1.02rem;line-height:1.5}.opening-copy em{color:var(--ink)}.opening-screen .primary-action,.letter-reading-screen .primary-action{cursor:pointer}.opening-screen .primary-action:disabled{cursor:wait;opacity:.7}.opening-message{color:#8a4f48;max-width:36ch;margin:21px 0 0;font-family:Georgia,Times New Roman,serif;font-size:.94rem;line-height:1.5}.reading-paper{min-height:0}.reading-note{max-width:32ch;color:var(--soft-ink);margin:27px 0;font-family:Georgia,Times New Roman,serif;font-size:.96rem;line-height:1.5}.navigation{z-index:2;border-top:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#f8f3e9f0;grid-template-columns:repeat(3,1fr);max-width:720px;margin:0 auto;display:grid;position:fixed;bottom:0;left:0;right:0}.nav-link{color:var(--soft-ink);flex-direction:column;align-items:center;gap:6px;padding:15px 8px 18px;font-size:.72rem;display:flex}.nav-dot{background:0 0;border-radius:50%;width:5px;height:5px}.nav-link.active{color:var(--ink)}.nav-link.active .nav-dot{background:var(--ink)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (min-width:640px){.app-shell{padding-left:48px;padding-right:48px}.letter-list li{grid-template-columns:130px minmax(0,1fr) 130px;align-items:baseline}.letter-from{text-align:right;grid-column:3}.navigation{width:100%;left:50%;right:auto;transform:translate(-50%)}}
