:root{--ink:#302c3b;--muted:#756c7a;--paper:#f8f1e4;--purple:#6b457b;--plum:#432b55;--gold:#c6a773;--night:#171323;--line:#ded1bd;--rose:#a5697b;--shadow:0 22px 65px #0005;--serif:Georgia,'Times New Roman',serif;--sans:system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}*{box-sizing:border-box}html{min-width:300px;scroll-behavior:smooth}body{margin:0;min-height:100vh;background:radial-gradient(ellipse at 15% 12%,#40305255,transparent 45%),radial-gradient(ellipse at 84% 83%,#74505930,transparent 38%),#171323;color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.65}body:before{content:'';position:fixed;inset:0;pointer-events:none;background-image:radial-gradient(1px 1px at 8% 24%,#d6c08c 50%,transparent),radial-gradient(1px 1px at 21% 70%,#d6c08c 50%,transparent),radial-gradient(1px 1px at 65% 18%,#d6c08c 50%,transparent),radial-gradient(1px 1px at 88% 66%,#d6c08c 50%,transparent),radial-gradient(1px 1px at 40% 40%,#d6c08c 50%,transparent);background-size:397px 367px;opacity:.65;z-index:-1}button,input,textarea,select{font:inherit}button{cursor:pointer;border:0;background:none;color:inherit;min-height:44px}button:disabled{cursor:not-allowed;opacity:.5}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #ae86bd;outline-offset:4px}button{touch-action:manipulation}a{color:var(--purple)}.topbar{width:min(1210px,calc(100% - 40px));margin:23px auto 19px;display:flex;align-items:center;gap:12px;color:#e2d7cb}.brand{display:flex;align-items:center;gap:10px;font-family:var(--serif);font-size:20px;letter-spacing:.015em}.brand-mark{font-size:30px;color:var(--gold)}.top-actions{margin-left:auto;display:flex;align-items:center;gap:8px}.top-button{padding:6px 12px;border:1px solid #c6a77340;border-radius:24px;font-size:12px;letter-spacing:.02em;color:#e6dac9}.connection{font-size:11px;color:#c0b0c8;max-width:230px;line-height:1.4}.connection:before{content:'●';color:#bfa4ca;font-size:8px;margin-right:6px}.preview-strip{color:#cbbbd4;text-align:center;font-size:11px;letter-spacing:.035em;padding:0 16px 15px}.preview-strip strong{color:#e1cfa7;font-weight:500}.stage{width:min(1180px,calc(100% - 48px));margin:0 auto}.cover-scene{perspective:1500px;display:flex;justify-content:center;padding:12px 0 32px;min-height:650px}.cover{position:relative;width:min(500px,100%);min-height:635px;border-radius:5px 14px 14px 5px;background:linear-gradient(90deg,#231b31 0,#4f365e 2%,#2c203b 4%,#30213f 94%,#20172e 100%);border:1px solid #92764b;box-shadow:var(--shadow),inset -4px 0 8px #100a2270;display:flex;flex-direction:column;align-items:center;text-align:center;padding:63px 42px 44px;color:#e4c995;transform-origin:left center;transition:transform .65s ease,opacity .55s}.cover:before{content:'';position:absolute;inset:18px;border:1px solid #bd9e6870;border-radius:2px 6px 6px 2px;pointer-events:none}.cover:after{content:'';position:absolute;inset:24px;border:1px solid #bd9e6828;pointer-events:none}.cover.rolling{transform:rotateY(-45deg);opacity:0}.corner{position:absolute;color:#bca071;font-size:29px;line-height:1}.corner.tl{top:29px;left:31px}.corner.tr{top:29px;right:31px;transform:rotate(90deg)}.corner.bl{bottom:30px;left:31px;transform:rotate(-90deg)}.corner.br{bottom:30px;right:31px;transform:rotate(180deg)}.overline{font-size:10px;letter-spacing:.25em;text-transform:uppercase;font-weight:600}.cover h1{font-family:var(--serif);font-weight:400;font-size:65px;line-height:1.09;letter-spacing:-.04em;margin:25px 0 0}.cover h1 em{font-size:.72em;font-weight:400}.cover .dedication{font-family:var(--serif);font-style:italic;color:#cfbbd4;font-size:17px;margin:24px 0 13px}.cover .date{font-size:11px;letter-spacing:.19em;margin:3px 0 22px;color:#d6c49e;text-transform:uppercase}.cover p{margin:0 0 16px;color:#bba9c9;font-size:12px;max-width:280px}.cover .primary{background:#e0c799;color:#2e213d;border:1px solid #efddbe;min-width:204px;box-shadow:0 0 30px #edcd8a15}.cover .quiet{color:#d2c0d7;margin-top:9px;font-size:12px}.seal-art{position:relative;width:166px;height:143px;margin:26px auto 6px}.orbit{position:absolute;inset:12px 18px;border:1px solid #c6a77370;border-radius:50%;transform:rotate(35deg)}.orbit:nth-child(2){inset:24px 7px;transform:rotate(-28deg)}.moon{position:absolute;width:58px;height:58px;border-radius:50%;top:36px;left:53px;box-shadow:-9px 3px 0 0 #cbb27e;transform:rotate(-25deg)}.seal-art .star{position:absolute;font-size:26px;color:#e5c890}.seal-art .star.one{top:10px;right:27px}.seal-art .star.two{bottom:4px;left:24px;font-size:19px}.seal-art .star.three{top:52px;right:15px;font-size:12px}.seal-art:after{content:'✦';position:absolute;left:69px;bottom:0;font-size:10px;color:#dcc699}.opening-quote{font-family:var(--serif);font-style:italic;font-size:20px!important;line-height:1.5}.book-shell{position:relative;box-shadow:var(--shadow);border-radius:4px 10px 10px 4px;background:var(--paper);border:1px solid #d6c2a4;overflow:clip}.book-shell:after{content:'';position:absolute;bottom:0;left:0;right:0;height:6px;background:repeating-linear-gradient(to bottom,#d3c8b5 0 1px,#f7efdf 1px 3px);pointer-events:none}.spread{display:grid;grid-template-columns:35% 65%;min-height:660px;background:radial-gradient(ellipse at 30% 30%,#fffaf3,transparent 75%),var(--paper)}.chapter-front{position:relative;padding:62px 38px 75px;border-right:1px solid #c7bba4;display:flex;flex-direction:column;align-items:center;text-align:center;background:linear-gradient(90deg,transparent 93%,#b8a08414 98%,#89745a21 100%)}.chapter-front:before{content:'';position:absolute;inset:20px 22px;border:1px solid #d7c5a580;pointer-events:none}.chapter-front .overline{color:#8c6d46;font-size:9px;max-width:230px}.chapter-number{font-family:var(--serif);font-size:17px;color:#ab8a59;margin:14px 0 15px}.chapter-front h1{font-family:var(--serif);font-size:43px;font-weight:400;line-height:1.16;letter-spacing:-.025em;margin:6px 0 15px;color:#4c3656}.chapter-front .chapter-verse{font-family:var(--serif);font-size:18px;line-height:1.6;font-style:italic;color:#877185;max-width:245px;margin:16px 0}.chapter-front .seal-art{margin:35px auto 22px;opacity:.7}.chapter-front .front-footer{margin-top:auto;padding-top:28px;color:#9a8469;font-size:10px;letter-spacing:.12em;text-transform:uppercase}.chapter-pages{padding:37px 40px 60px;min-width:0;position:relative}.chapter-pages h2{font-family:var(--serif);font-weight:400;font-size:30px;line-height:1.2;margin:3px 0 12px;color:#51385d}.chapter-pages h3{font-family:var(--serif);font-size:22px;font-weight:400;line-height:1.3;margin:24px 0 12px;color:#533d60}.lede{color:var(--muted);font-size:13px;line-height:1.8;margin:0 0 24px}.eyebrow{font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:#9c7f57;font-weight:600;margin-bottom:12px}.rule{display:flex;align-items:center;gap:12px;color:#c0a16a;margin:24px 0;font-size:13px}.rule:before,.rule:after{content:'';height:1px;background:#ded0b5;flex:1}.primary,.secondary,.subtle,.danger{display:inline-flex;justify-content:center;align-items:center;gap:7px;border-radius:5px;padding:10px 18px;min-height:44px;font-size:12px;font-weight:500;letter-spacing:.015em;text-decoration:none}.primary{background:#654477;color:#fff6ee;box-shadow:0 4px 10px #51355f18}.primary:hover{background:#79508c}.secondary{border:1px solid #c9b8cc;color:#674476;background:#f7f0f6}.subtle{border:1px solid #d7cbb7;background:#fffaf273;color:#6d5b54}.danger{border:1px solid #c9a9b4;color:#8b4660;background:#fff6f6}.text-button{color:var(--purple);text-decoration:underline;text-underline-offset:3px;min-height:36px;padding:4px 7px;font-size:12px}.button-row{display:flex;flex-wrap:wrap;gap:9px;margin-top:20px}.fine{font-size:11px;color:#827786;line-height:1.7}.center{text-align:center}.quiet-box{padding:18px 20px;border:1px solid #e0d2b8;border-radius:4px;background:#fbf6eb;color:#716570;font-size:12px;margin:18px 0}.notice{padding:13px 16px;border-left:2px solid #a981b8;background:#eee4f0;color:#674b72;font-size:12px;margin:15px 0}.person-row{display:flex;align-items:center;gap:10px;margin:12px 0}.initial{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;flex-shrink:0;border-radius:50%;background:#e9dde9;color:#7b5386;font-family:var(--serif);font-size:16px;border:1px solid #d5c3d9}.person-row .name{font-size:12px;font-weight:500}.person-row .detail{font-size:11px;color:#8b7d8a}.pill{font-size:10px;border:1px solid #d7c6da;border-radius:12px;padding:3px 9px;color:#785781;display:inline-block}.pill.shared{border-color:#b9cbbc;color:#527156}.pill.private{border-color:#dbcaad;color:#947443}.intro-letter{font-family:var(--serif);font-size:19px;line-height:1.8;color:#6b536e;padding:7px 0 16px}.guide-line{display:flex;gap:17px;border-top:1px solid #e2d7c7;padding:17px 0}.guide-time{width:76px;flex-shrink:0;color:#9a7b54;font-size:10px;text-transform:uppercase;letter-spacing:.06em}.guide-line strong{font-family:var(--serif);font-size:18px;font-weight:400;color:#594362}.guide-line p{font-size:12px;color:#827585;margin:4px 0 0}.folio-nav{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 28px 17px;border-top:1px solid #d8cbb7;background:#f4ebdc;min-height:70px}.folio-nav button{font-size:12px;color:#735b7c;padding:7px 12px;max-width:38%}.folio-number{font-family:var(--serif);font-size:14px;color:#ad906b}.footer{color:#9e8ca9;font-size:10px;letter-spacing:.09em;text-align:center;margin:24px auto 30px}.navigation-invite{display:flex;gap:8px;align-items:center;justify-content:center;margin:0 0 13px;color:#cfbed5;font-size:12px}.navigation-invite button{border-bottom:1px solid #94739b;font-size:12px;min-height:30px}.sheet{border:1px solid #ddcebb;background:#fffcf5;border-radius:3px;padding:20px 22px;margin:16px 0;box-shadow:0 3px 10px #654c3010}.sheet p,.memory-caption{white-space:pre-wrap;overflow-wrap:anywhere;color:#5c4c60}.sheet p{font-family:var(--serif);font-size:17px;line-height:1.8}.sheet .attribution{font-family:var(--sans);font-size:10px;color:#9a8469;letter-spacing:.06em;text-transform:uppercase}.photo-frame{padding:11px 11px 15px;background:#fffdfa;box-shadow:0 5px 15px #5b443926;border:1px solid #e6ddcf;margin:15px auto 18px;width:100%;max-width:480px;transform:rotate(-.7deg)}.photo-frame img{display:block;width:100%;max-height:400px;object-fit:contain;background:#f1e8e1}.photo-frame figcaption{text-align:center;font-family:var(--serif);font-style:italic;font-size:15px;line-height:1.6;margin-top:11px;color:#765a6d;white-space:pre-wrap;overflow-wrap:anywhere}.photo-placeholder{height:215px;display:flex;align-items:center;justify-content:center;flex-direction:column;border:1px dashed #cbb7c9;background:radial-gradient(ellipse at 50% 30%,#f3e6e8,#e4dbe5);color:#9878a0;font-family:var(--serif);font-size:18px;text-align:center;padding:30px}.photo-placeholder .big-star{font-size:40px;color:#b99472;margin-bottom:10px}.memory-heading{display:flex;align-items:center;justify-content:space-between;gap:15px}.memory-heading h3{margin:0}.memory-controls{display:flex;justify-content:space-between;align-items:center;font-size:11px;color:#8b7794;border-bottom:1px solid #e1d4c3;padding-bottom:8px;margin-bottom:16px}.memory-controls button{min-width:44px;font-size:19px}.memory-caption{font-size:14px;line-height:1.85}.envelopes{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin:22px 0}.envelope{min-height:83px;position:relative;background:linear-gradient(145deg,#faf2e5,#efe0ce);border:1px solid #d8c6ae;border-radius:3px;padding:20px 6px 7px;box-shadow:0 2px 6px #6d543c0d;color:#9b7a66}.envelope:before{content:'';position:absolute;left:0;right:0;top:0;height:31px;clip-path:polygon(0 0,100% 0,50% 100%);background:#e9d8c5;border-bottom:1px solid #cbbca6}.envelope.saved:before{background:#d8bbcf}.envelope .seal{position:relative;display:inline-flex;width:23px;height:23px;align-items:center;justify-content:center;background:#9a6a85;color:#fff4e6;border-radius:50%;font-family:var(--serif);font-size:11px;box-shadow:0 0 0 3px #9a6a8515;margin:2px 0}.envelope:not(.saved) .seal{background:#cbb59e}.envelope .letter-status{display:block;font-size:8px;letter-spacing:.03em;margin-top:3px}.reveal-card{padding:28px;background:linear-gradient(135deg,#fffaf1,#f3e6e9);border:1px solid #d9c1c5;border-radius:3px;box-shadow:0 5px 15px #5d344f0a;margin:23px 0}.reveal-card .letter-number{font-size:10px;color:#a18474;letter-spacing:.16em;text-transform:uppercase}.reveal-card blockquote{font-family:var(--serif);font-style:italic;font-size:23px;line-height:1.65;color:#5d3b65;margin:16px 0;white-space:pre-wrap;overflow-wrap:anywhere}.old-letters{display:grid;grid-template-columns:1fr 1fr;gap:12px}.old-letters .sheet{margin:0;padding:14px}.old-letters p{font-size:14px}.reply{margin:12px 0 0 16px;border-left:1px solid #cbb2cb;padding:5px 0 5px 15px;font-size:12px;color:#85728a;white-space:pre-wrap;overflow-wrap:anywhere}.reply strong{display:block;font-size:10px;letter-spacing:.02em;color:#72517d}.game-card{border:1px solid #ccb994;border-radius:8px;padding:27px 24px;background:linear-gradient(145deg,#fbf3e2,#eee4f1);text-align:center;box-shadow:0 4px 10px #563a2910;margin:15px 0 23px}.game-card .card-symbol{font-size:32px;color:#aa845e}.game-card h3{font-size:26px;margin:9px 0}.game-card p{font-family:var(--serif);font-size:20px;line-height:1.6;margin:15px 0;color:#73557c}.answer-pair{display:grid;grid-template-columns:1fr 1fr;gap:12px}.answer-pair .sheet{padding:16px}.answer-pair p{font-size:15px}.countdown{text-align:center;margin:30px 0;padding:25px 14px;border-top:1px solid #ddcdb6;border-bottom:1px solid #ddcdb6;font-family:var(--serif);font-size:38px;line-height:1.4;color:#77517e}.countdown .small{font-family:var(--sans);font-size:11px;color:#8b7d8a;letter-spacing:.08em;text-transform:uppercase}.movie-moon{font-size:54px;color:#b99861;text-align:center;margin:10px}.field{display:block;margin:16px 0}.field>span,.field>label{display:block;font-size:12px;color:#6e5877;margin-bottom:7px;font-weight:500}.field input:not([type=checkbox]),.field textarea,.field select{width:100%;min-width:0;border:1px solid #cfbed2;border-radius:4px;background:#fffdfa;color:#44394b;padding:10px 12px;box-shadow:inset 0 1px 3px #6b4d7010;line-height:1.6}.field textarea{min-height:110px;resize:vertical;font-family:var(--serif);font-size:17px}.field input[type=file]{font-size:12px;padding:8px 9px}.field input[type=file]::file-selector-button{border:0;background:#eee3ef;border-radius:4px;padding:9px 12px;margin-right:10px;color:#654374}.checkbox-row{display:flex;align-items:flex-start;gap:9px;font-size:12px;color:#725d78;line-height:1.7;margin:14px 0}.checkbox-row input{margin-top:5px;accent-color:var(--purple)}.inline-fields{display:grid;grid-template-columns:1fr 1fr;gap:14px}.error-text{color:#9c3f54;font-size:12px;background:#f9e7ea;border-radius:3px;padding:12px;white-space:pre-wrap}.empty-note{text-align:center;color:#9d879d;font-family:var(--serif);font-size:17px;font-style:italic;padding:25px 12px}.ribbon{color:#7a5486;font-size:10px;text-transform:uppercase;letter-spacing:.12em;padding-bottom:10px;border-bottom:1px solid #decddd;margin-bottom:20px}.login-card,.archive-card{width:min(700px,100%);background:var(--paper);border-radius:6px;padding:45px 48px;box-shadow:var(--shadow);margin:25px auto 40px;position:relative;border:1px solid #d7c4a6}.login-card h1,.archive-card h1{font-family:var(--serif);font-weight:400;color:#55395e;font-size:42px;line-height:1.2}.archive-card{padding:54px;text-align:center}.archive-card .seal-art{margin:5px auto 30px}.archive-card .person-row{text-align:left;justify-content:center}.archive-card p{color:#87758b}.archive-card .button-row{justify-content:center}.archive-card .checkbox-row{text-align:left}.contents-list{list-style:none;padding:0;margin:20px 0}.contents-list button{width:100%;text-align:left;display:flex;align-items:center;gap:17px;border-bottom:1px solid #e0d3c2;padding:12px 3px;font-family:var(--serif);font-size:18px}.contents-list .number{color:#ac8c62;font-size:13px;width:25px;flex-shrink:0}.contents-list .active{color:#9868a8}.contents-list .tail{margin-left:auto;font-size:16px;color:#ad9375}dialog{border:1px solid #c8ae8e;border-radius:7px;width:min(650px,calc(100% - 24px));max-height:90dvh;overflow:auto;padding:0;background:#faf2e6;color:var(--ink);box-shadow:0 22px 90px #0007}dialog::backdrop{background:#160d25b5;backdrop-filter:blur(5px)}.dialog-inner{padding:30px 34px 34px}.dialog-head{display:flex;align-items:center;justify-content:space-between;gap:15px}.dialog-head h2{font-family:var(--serif);font-size:29px;font-weight:400;color:#64476e;margin:0}.dialog-close{font-size:24px;color:#8e7997;width:44px;flex-shrink:0}.modal-preview{max-width:100%;max-height:230px;display:block;margin:15px auto;object-fit:contain}.settings-row{border-bottom:1px solid #dfd1bf;padding:15px 0}.settings-row strong{display:block;font-family:var(--serif);font-size:19px;font-weight:400;margin-bottom:7px}.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);padding:13px 22px;border:1px solid #b99ec0;border-radius:8px;background:#392746;color:#fff3ee;font-size:12px;box-shadow:0 8px 30px #0004;max-width:min(650px,90vw);z-index:1000;display:none}.toast.visible{display:block}.toast.error{background:#613647;border-color:#b07789}.saved-check{color:#59715a}.screen-reader{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}#print-area{display:none}.chapter-pages.enter{animation:page-arrive .45s ease}.no-motion *{animation:none!important;transition:none!important;scroll-behavior:auto!important}@keyframes page-arrive{from{opacity:0;transform:translateX(9px)}to{opacity:1;transform:translateX(0)}}
@media(min-width:1000px){.chapter-pages{padding-right:47px}.cover-scene{padding-top:18px}}
@media(max-width:900px){.spread{grid-template-columns:32% 68%}.chapter-front{padding:53px 23px}.chapter-front h1{font-size:33px}.chapter-front:before{inset:17px 14px}.chapter-front .chapter-verse{font-size:16px}.chapter-pages{padding:30px 27px 50px}.chapter-front .seal-art{transform:scale(.8);margin:20px auto}.envelopes{gap:7px}.connection{max-width:165px}}
@media(max-width:650px){body{font-size:14px}.topbar{width:calc(100% - 24px);gap:7px;margin:14px auto 15px}.brand{font-size:17px;gap:6px}.brand-mark{font-size:25px}.top-actions{gap:5px}.top-button{padding:5px 9px;font-size:11px}.connection{display:none}.stage{width:calc(100% - 22px)}.cover-scene{min-height:0;padding:4px 7px 23px}.cover{min-height:570px;padding:49px 29px 36px}.cover h1{font-size:57px}.cover .dedication{font-size:16px}.cover .seal-art{margin-top:20px;margin-bottom:0;transform:scale(.88)}.cover .date{font-size:10px}.preview-strip{font-size:10px;padding-bottom:13px}.spread{display:block;min-height:0}.chapter-front{padding:29px 28px 21px;display:block;border-right:none;border-bottom:1px solid #deceb9;background:linear-gradient(120deg,#f5ead9,#f4e7eb)}.chapter-front:before{inset:11px;border-color:#d8c1a450}.chapter-front .overline{font-size:8px;max-width:none}.chapter-number{display:none}.chapter-front h1{font-size:33px;margin:10px 0 9px}.chapter-front .chapter-verse{font-size:15px;max-width:none;margin:8px 0 4px}.chapter-front .seal-art,.chapter-front .front-footer{display:none}.chapter-pages{padding:27px 23px 38px}.chapter-pages h2{font-size:27px}.lede{font-size:12px}.envelopes{grid-template-columns:repeat(5,1fr);gap:6px}.envelope{min-height:75px;padding:19px 2px 5px}.envelope .letter-status{font-size:7px}.envelope .seal{width:21px;height:21px}.old-letters,.answer-pair{grid-template-columns:1fr}.old-letters .sheet{padding:15px}.folio-nav{padding:8px 12px 15px;gap:8px}.folio-nav button{font-size:11px;padding:7px;max-width:42%}.folio-number{font-size:12px}.folio-nav .next-label,.folio-nav .prev-label{display:none}.sheet{padding:18px}.reveal-card{padding:20px}.reveal-card blockquote{font-size:21px}.game-card{padding:20px}.game-card p{font-size:19px}.inline-fields{grid-template-columns:1fr;gap:0}.login-card,.archive-card{padding:30px 25px}.archive-card h1,.login-card h1{font-size:35px}.dialog-inner{padding:22px 20px 25px}.dialog-head h2{font-size:26px}.button-row>*{flex-grow:1}.guide-time{width:58px;font-size:9px}.footer{font-size:9px;margin:19px 0 25px}.photo-frame img{max-height:350px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
/* V2: two colors, a shared binding, and pages revealed only by making them. */
:root{--violet:#583378;--lavender:#c5b1e2;--purple:#654079;--paper:#faf3e7;--night:#191324}
body{background:radial-gradient(ellipse at 10% 0%,#51356950,transparent 45%),radial-gradient(ellipse at 90% 70%,#b598ce18,transparent 45%),#191324}
.topbar{max-width:1120px}.stage{max-width:1120px}.preview-strip{display:flex;justify-content:center;gap:6px 11px;align-items:center;flex-wrap:wrap;max-width:100%;padding:0 14px 16px;font-size:11px;line-height:1.5}.preview-badge{font-size:9px;letter-spacing:.1em;color:#ae9bb8}.preview-link{font-size:11px;color:#d6bee8;text-decoration:underline;text-underline-offset:3px;min-height:36px;padding:0 5px}.cover{background:radial-gradient(ellipse at 78% 13%,#a988c532,transparent 58%),linear-gradient(90deg,#21182d 0,#604474 2%,#31223f 5%,#362347 94%,#22172f 100%);min-height:675px;padding-top:52px;padding-bottom:40px}.cover h1{font-size:70px}.cover .dedication{margin-top:11px;color:#dac4ea}.cover .opening-quote{font-size:18px!important;color:#cfbbd9;line-height:1.55;margin:10px 0 23px}.cover .date{margin-bottom:7px}.cover .primary{border-radius:3px;background:#e2cca5;color:#3a254b;min-width:205px}.cover-colors{display:flex;gap:12px;align-items:center;margin-top:25px;font:italic 14px var(--serif);color:#c8b3df}.cover-colors i{font:11px var(--sans);color:#ae956d}.cover-colors span:last-child{color:#ab84cb}.cover-lock{padding:13px 18px;border:1px solid #bd9e6855;border-radius:4px;font-size:12px;color:#dfc9e7}.amp{color:#bba171;margin:0 5px}.two-threads{display:flex;align-items:center;justify-content:center;gap:10px;width:150px;margin:5px auto 8px;color:#b99a65}.two-threads i{display:block;height:2px;width:49px;background:linear-gradient(90deg,transparent,#cbb6e2)}.two-threads i:last-child{background:linear-gradient(90deg,#714a95,transparent)}.two-threads span{font-size:13px}.cover .seal-art{margin-top:24px;margin-bottom:2px}.cover .moon{box-shadow:-9px 3px 0 0 #cfb6e7}.cover .star.one{color:#ccafe6}.cover .star.two{color:#a783ca}.chapter-front{padding:53px 34px 55px;background:radial-gradient(ellipse at 15% 10%,#d9c9e51f,transparent 65%),linear-gradient(90deg,transparent 92%,#b8a08416 98%,#89745a21 100%)}.chapter-front h1{font-size:44px;color:#54365f}.chapter-front .front-footer{letter-spacing:.11em;font-size:9px}.chapter-front .two-threads{margin:20px auto 10px}.chapter-pages{padding-top:42px}.book-shell{overflow:hidden}.book-ribbons{position:absolute;z-index:2;top:0;right:35px;display:flex;gap:5px;pointer-events:none}.book-ribbons i{width:11px;height:33px;clip-path:polygon(0 0,100% 0,100% 100%,50% 80%,0 100%);background:#bfa9dc;box-shadow:inset 2px 0 2px #fff3}.book-ribbons i:last-child{height:43px;background:#603582}.task-invitation{font-size:14px;line-height:1.9}.intro-letter{font-size:25px;line-height:1.55;padding:4px 0 20px;color:#614367}.letter-scene{position:relative;height:218px;width:225px;margin:38px auto 18px}.paper-slip{position:absolute;left:20px;top:10px;width:180px;height:141px;padding:27px 16px;border:1px solid #dfcdb6;background:#fffaf0;box-shadow:0 4px 18px #4c244e0b;transform:rotate(-8deg);font:italic 20px/1.5 var(--serif);color:#9876a8;text-align:center}.envelope-drawing{position:absolute;bottom:16px;left:7px;width:211px;height:123px;background:linear-gradient(145deg,#ece0f0,#d8c5e3);border:1px solid #c6afcf;box-shadow:0 8px 15px #68517417;transform:rotate(4deg)}.envelope-drawing:before{content:'';position:absolute;inset:0 0 auto;height:75px;clip-path:polygon(0 0,100% 0,50% 100%);background:#f4eaf5}.envelope-drawing span{position:absolute;top:42px;left:90px;background:#6b427f;color:#fcefdc;border-radius:50%;display:grid;place-items:center;width:35px;height:35px;font:20px var(--serif);box-shadow:0 0 0 4px #6b427f11}.pressed-sprig{position:absolute;bottom:-1px;right:-20px;font-size:80px;transform:rotate(-40deg);color:#8c749a}.person-row.violet-person .initial{background:#e6daed;color:#583378;border-color:#bda4ce}.person-row.lavender-person .initial{background:#efe6f8;color:#795392;border-color:#cab7df}.person-row.lavender-person{border-left:2px solid #bda5d7;padding-left:9px}.person-row.violet-person{border-left:2px solid #674087;padding-left:9px}.next-seal{margin-top:33px;text-align:center;position:relative}.next-seal .rule{margin-bottom:26px}.next-seal h3{margin:15px auto 10px;font-size:24px;line-height:1.35;max-width:360px}.seal-caption{font-family:var(--serif);font-size:16px;color:#89758d;line-height:1.7;max-width:370px;margin:0 auto 22px}.wax-seal{height:54px;width:54px;border-radius:50%;margin:0 auto;background:radial-gradient(circle at 35% 28%,#87669c,#513368);border:3px double #b696c4;color:#ebd5aa;display:grid;place-items:center;font-size:24px;box-shadow:0 4px 9px #45264d26,inset 0 0 0 2px #32174329}.is-awake .wax-seal{background:radial-gradient(circle at 35% 28%,#d1b1e7,#76518c);box-shadow:0 0 30px #b38cd560,0 4px 9px #45264d26;animation:seal-light 2.5s ease-in-out infinite alternate}.heart-lights{display:flex;justify-content:center;gap:18px;margin:18px 0 21px}.heart-light{min-width:0;max-width:47%;display:flex;flex-direction:column;align-items:center}.heart-light>span{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;border:1px solid #d5c9d7;color:#9a829e;font:23px var(--serif);margin-bottom:7px}.heart-light strong{font-weight:500;font-size:11px;color:#6a526f;overflow-wrap:anywhere;max-width:160px}.heart-light small{font-size:10px;color:#907f96;margin-top:4px}.heart-light.lit.violet-person>span{color:#ffeffb;background:#613781;border-color:#7d549b;box-shadow:0 0 17px #7245963c}.heart-light.lit.lavender-person>span{color:#543567;background:#d5c1ea;border-color:#b397cc;box-shadow:0 0 17px #c2a3df50}.center-buttons{justify-content:center}.readiness-hint{font-size:11px;color:#8a738f;line-height:1.8;margin:14px auto;max-width:380px}.sealed-caption{width:100%;font:italic 14px var(--serif);color:#a38ba8;padding:12px 0 3px}.seal-turn{animation:arrive-soft .5s ease}.folio-mystery{font:italic 12px var(--serif);color:#9b859d;text-align:right;max-width:47%}.folio-nav button{max-width:44%}.past-page-note{padding:9px 0 20px;color:#93829b;font:italic 13px var(--serif)}.movie-return{padding:9px 0 4px}.movie-return h3{margin-bottom:8px}.closing-letter{text-align:center;padding:10px 0 18px}.closing-letter p{font:18px/1.8 var(--serif);color:#82678b}.archive-card{background:radial-gradient(ellipse at 100% 0%,#e7d8f043,transparent 65%),var(--paper)}.sheet{border-left:3px solid #bca1c7}.envelope.saved:nth-child(even):before{background:#cab4df}.envelope.saved:nth-child(odd):before{background:#9a7cb1}.envelope.saved:nth-child(even) .seal{background:#a181bb}.envelope.saved:nth-child(odd) .seal{background:#694582}.book-shell.turning{animation:page-turn .38s ease forwards;transform-origin:35% 50%}.primary:disabled,.secondary:disabled{opacity:.55}.preview-strip button:disabled{opacity:.5}button:focus-visible{outline-color:#9c6eb6}
@keyframes seal-light{from{box-shadow:0 0 15px #b38cd53b}to{box-shadow:0 0 33px #b38cd578}}
@keyframes page-turn{0%{opacity:1;transform:perspective(1600px) rotateY(0)}100%{opacity:.2;transform:perspective(1600px) rotateY(-8deg)}}
@keyframes arrive-soft{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:900px){.chapter-front{padding:49px 22px}.chapter-front h1{font-size:36px}.chapter-pages{padding:35px 26px 45px}.intro-letter{font-size:23px}}
@media(max-width:650px){.cover{min-height:620px;padding:40px 25px 32px}.cover h1{font-size:60px}.cover .seal-art{margin-top:16px;margin-bottom:0;height:124px}.cover .opening-quote{font-size:17px!important}.cover-colors{margin-top:22px}.preview-strip{font-size:10px;gap:0 8px;padding-bottom:14px}.preview-badge{font-size:8px}.preview-link{font-size:10px;min-height:34px}.chapter-front{padding:30px 25px 25px}.chapter-front h1{font-size:34px}.chapter-front .two-threads{display:none}.chapter-pages{padding:28px 23px 35px}.book-ribbons{right:25px}.book-ribbons i{width:9px;height:24px}.book-ribbons i:last-child{height:31px}.intro-letter{font-size:24px;padding-top:2px}.task-invitation{font-size:13px}.letter-scene{transform:scale(.9);margin-top:24px;margin-bottom:5px}.next-seal{margin-top:27px}.next-seal h3{font-size:23px}.next-seal .rule{margin-bottom:24px}.seal-caption{font-size:15px}.heart-lights{gap:20px}.heart-light{max-width:46%}.folio-mystery{font-size:11px}.folio-nav{padding-left:13px;padding-right:15px}.folio-nav button{font-size:11px}.topbar{margin-bottom:9px}.preview-strip .preview-badge{flex-basis:100%;margin-bottom:2px}.center-buttons>*{flex-grow:1}.sheet p{font-size:17px}.closing-letter p{font-size:17px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.sheet.violet-letter,.reveal-card.violet-letter{border-left:3px solid #684184}.sheet.lavender-letter,.reveal-card.lavender-letter{border-left:3px solid #c1a7df}.violet-bundle .envelope.saved:before{background:#b89acb}.violet-bundle .envelope.saved .seal{background:#694582}.lavender-bundle .envelope.saved:before{background:#dbcaec}.lavender-bundle .envelope.saved .seal{background:#a181bb}
.cover .dedication,.chapter-front h1,.sheet h3,.closing-letter h2{overflow-wrap:anywhere}.fine{color:#796c7f}
