:root{--violet:#9b87c7;--violet-light:#c4b8db;--violet-deep:#6b5b95;--violet-glow:#9b87c740;--cream:#fff8e7;--cream-warm:#fff3d6;--cream-deeper:#f5ecd3;--cocoa:#3e2723;--cocoa-soft:#5d4037;--cocoa-muted:#8d6e63;--sage:#7cb342;--sage-soft:#aed581;--teal:#26c6da;--gold:#d4a85b;--line:#3e27231f;--shadow-soft:0 4px 20px #3e27230f;--shadow-lift:0 12px 40px #3e27231a;--serif:"Cormorant Garamond", "EB Garamond", Georgia, serif;--sans:"Nunito", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--max:720px;--pad:clamp(1.25rem, 4vw, 2.5rem);--radius:14px;--radius-lg:24px}*{box-sizing:border-box}html,body{background:var(--cream);color:var(--cocoa);font-family:var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;padding:0;font-size:17px;font-weight:400;line-height:1.65}a{color:var(--violet-deep);border-bottom:1px solid var(--violet-light);text-decoration:none;transition:all .2s}a:hover{color:var(--violet);border-bottom-color:var(--violet)}h1,h2,h3{font-family:var(--serif);color:var(--cocoa);margin:0 0 .6em;font-weight:500;line-height:1.2}h1{letter-spacing:-.01em;font-size:clamp(2rem,5.5vw,3.4rem);font-style:italic}h2{font-size:clamp(1.5rem,3.5vw,2.1rem);font-style:italic}h3{font-size:1.2rem;font-family:var(--sans);letter-spacing:.02em;text-transform:uppercase;color:var(--cocoa-soft);margin-bottom:.4em;font-style:normal;font-weight:700}p{margin:0 0 1.1em}p.lead{color:var(--cocoa-soft);font-size:1.15rem}em.quote{font-family:var(--serif);color:var(--violet-deep);font-size:1.1em;font-style:italic}.shell{flex-direction:column;min-height:100vh;display:flex}.header{padding:1.4rem var(--pad) .8rem;color:var(--cocoa-muted);justify-content:space-between;align-items:center;font-size:.85rem;display:flex}.header .mark{font-family:var(--serif);color:var(--violet-deep);font-size:1.05rem;font-style:italic}.header nav a{color:var(--cocoa-muted);text-transform:uppercase;letter-spacing:.06em;border:none;margin-left:1rem;font-size:.8rem}.header nav a:hover{color:var(--violet-deep)}.main{max-width:var(--max);width:100%;padding:2rem var(--pad) 4rem;flex:1;margin:0 auto}.hero{text-align:center;padding:4rem 0 3rem}.hero .mark-circle{background:linear-gradient(135deg, var(--cream-warm) 0%, var(--violet-light) 60%, var(--violet) 100%);width:96px;height:96px;box-shadow:0 0 40px var(--violet-glow), var(--shadow-lift);border-radius:50%;margin:0 auto 2rem;animation:6s ease-in-out infinite breathe}@keyframes breathe{0%,to{box-shadow:0 0 30px var(--violet-glow), var(--shadow-lift);transform:scale(1)}50%{box-shadow:0 0 56px var(--violet-glow), var(--shadow-lift);transform:scale(1.04)}}@media (prefers-reduced-motion:reduce){.hero .mark-circle{animation:none}}.hero h1{color:var(--violet-deep)}.hero .from{color:var(--cocoa-muted);letter-spacing:.05em;text-transform:uppercase;margin-top:1.5rem;font-size:.9rem}.card{border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft);background:#ffffff8c;margin:1.2rem 0;padding:1.6rem 1.8rem}.section-list{gap:1rem;margin:2rem 0;display:grid}.section-link{border:1px solid var(--line);border-radius:var(--radius);color:var(--cocoa);background:#fff9;border-bottom-width:1px;padding:1.2rem 1.4rem;text-decoration:none;transition:all .2s;display:block}.section-link:hover{border-color:var(--violet-light);box-shadow:var(--shadow-soft);color:var(--cocoa);background:#ffffffe6;transform:translateY(-1px)}.section-link .label{font-family:var(--sans);text-transform:uppercase;letter-spacing:.08em;color:var(--violet-deep);font-size:.75rem;font-weight:700}.section-link .title{font-family:var(--serif);color:var(--cocoa);margin:.15em 0;font-size:1.4rem;font-style:italic}.section-link .hint{color:var(--cocoa-muted);margin:.2em 0 0;font-size:.92rem}.btn{background:var(--violet);color:var(--cream);font-family:var(--sans);letter-spacing:.02em;cursor:pointer;box-shadow:var(--shadow-soft);border:none;border-radius:999px;padding:.85rem 1.8rem;font-size:.95rem;font-weight:600;text-decoration:none;transition:all .2s;display:inline-block}.btn:hover{background:var(--violet-deep);color:var(--cream);box-shadow:var(--shadow-lift);border:none;transform:translateY(-1px)}.btn.ghost{color:var(--violet-deep);border:1px solid var(--violet-light);background:0 0}.btn.ghost:hover{background:var(--violet);color:var(--cream)}.crumb{color:var(--cocoa-muted);margin-bottom:2rem;font-size:.85rem}.crumb a{color:var(--violet-deep);border:none}.signature{font-family:var(--serif);color:var(--cocoa-soft);border-top:1px solid var(--line);margin-top:2.5rem;padding-top:1.5rem;font-size:1.1rem;font-style:italic}.footer{padding:2rem var(--pad);text-align:center;color:var(--cocoa-muted);font-size:.78rem}.book-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.4rem;margin:2rem 0;display:grid}.book-card{background:var(--cream-warm);border:1px solid var(--line);border-radius:var(--radius);text-align:center;padding:1.2rem}.book-card .cover{aspect-ratio:2/3;background:var(--cream-deeper);width:100%;font-family:var(--serif);color:var(--cocoa-muted);box-shadow:var(--shadow-soft);border-radius:6px;justify-content:center;align-items:center;margin-bottom:1rem;padding:1rem;font-style:italic;display:flex}.book-card .title{font-family:var(--serif);color:var(--cocoa);margin:.2em 0;font-size:1.1rem;font-style:italic}.book-card .meta{color:var(--cocoa-muted);font-size:.8rem}.book-card .badge{background:var(--sage-soft);color:var(--cocoa);text-transform:uppercase;letter-spacing:.05em;border-radius:999px;margin-top:.5em;padding:.15rem .6rem;font-size:.7rem;font-weight:700;display:inline-block}.book-card .badge.coming{background:var(--cream-deeper);color:var(--cocoa-muted)}.balance-table{border-collapse:collapse;width:100%;margin:1.5rem 0}.balance-table th,.balance-table td{text-align:left;border-bottom:1px solid var(--line);padding:.7rem .5rem;font-size:.95rem}.balance-table th{font-family:var(--sans);text-transform:uppercase;letter-spacing:.05em;color:var(--cocoa-muted);font-size:.75rem;font-weight:700}.balance-table td.right{text-align:right;font-variant-numeric:tabular-nums}.note-block{background:var(--cream-warm);border-left:3px solid var(--violet-light);color:var(--cocoa-soft);border-radius:4px;margin:1.4rem 0;padding:1.2rem 1.4rem;font-style:italic}.note-block strong{color:var(--cocoa);font-style:normal}.login-shell{justify-content:center;align-items:center;min-height:100vh;padding:2rem;display:flex}.login-card{text-align:center;width:100%;max-width:400px;padding:3rem 2rem}.login-card input[type=password]{border:1px solid var(--violet-light);width:100%;font-family:var(--sans);color:var(--cocoa);background:#ffffffb3;border-radius:999px;margin-bottom:1rem;padding:.85rem 1rem;font-size:1rem}.login-card input[type=password]:focus{outline:2px solid var(--violet);outline-offset:2px}.login-card .err{color:#c0392b;margin-bottom:1rem;font-size:.85rem}
