:root{--cream:#fbf6ee;--paper:#fffdf9;--ink:#33251f;--brown:#56382b;--gold:#b78648;--gold-pale:#f4e5c5;--clay:#a76449;--muted:#75665c;--line:#e7d9c8;--danger:#9a3424;--radius:20px;--shadow:0 16px 38px #4d342117}*{box-sizing:border-box}body{min-height:100vh;margin:0;background:radial-gradient(circle at 15% 0,#fff9ef 0,transparent 25rem),var(--cream);color:var(--ink);font:16px/1.7 -apple-system,BlinkMacSystemFont,"Hiragino Sans","Yu Gothic",Meiryo,sans-serif}.page-shell{width:min(100% - 2rem,660px);margin:auto;padding:5rem 0}.brand{display:flex;align-items:center;justify-content:center;gap:.65rem;margin-bottom:1.5rem;color:var(--brown);font-size:1rem;font-weight:800;letter-spacing:.03em}.brand-mark{display:grid;place-items:center;width:2.4rem;height:2.4rem;border:1px solid var(--gold);border-radius:50%;background:var(--gold-pale);font-family:serif;font-size:1.25rem}.card{padding:clamp(1.35rem,5vw,2.7rem);border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);box-shadow:var(--shadow)}.view{animation:appear .3s ease-out}.eyebrow{margin:0 0:.3rem;color:var(--clay);font-size:.78rem;font-weight:800;letter-spacing:.1em}.intro{margin:.5rem 0 1.5rem;color:var(--muted)}h1{margin:0;font-size:clamp(1.75rem,7vw,2.45rem);line-height:1.32}form{display:grid;gap:.45rem;margin-top:1.3rem}label{margin-top:.6rem;font-weight:800}input{width:100%;min-height:3.25rem;padding:.65rem .8rem;border:1px solid #cdbba6;border-radius:10px;background:#fff;color:var(--ink);font:inherit}input:focus-visible,button:focus-visible,a:focus-visible{outline:3px solid var(--gold);outline-offset:3px}button,.access-link{display:inline-flex;min-height:3.25rem;align-items:center;justify-content:center;margin-top:1rem;padding:.7rem 1rem;border:0;border-radius:11px;background:var(--brown);color:#fff;font:inherit;font-weight:800;text-decoration:none;cursor:pointer;transition:transform .16s ease,background .16s ease}button:hover,.access-link:hover{background:#704938;transform:translateY(-1px)}button:disabled{opacity:.6;cursor:wait;transform:none}.field-help,.small-note{margin:.25rem 0 0;color:var(--muted);font-size:.84rem}.message{margin-top:1rem;padding:.75rem .9rem;border-radius:10px;background:#fff0ed;color:var(--danger);font-weight:700}.message.success{background:#edf6e9;color:#3c6d2a}.spinner{display:block;width:2rem;height:2rem;margin:0 auto .7rem;border:3px solid var(--gold-pale);border-top-color:var(--brown);border-radius:50%;animation:spin .7s linear infinite}#loading-view{text-align:center;color:var(--muted)}.library-heading{display:flex;align-items:start;justify-content:space-between;gap:1rem}.text-button{min-height:auto;margin:0;padding:.4rem .2rem;background:transparent;color:var(--brown);text-decoration:underline}.text-button:hover{background:transparent;color:var(--clay)}.customer-email{margin:.8rem 0 1.3rem;color:var(--muted);font-size:.9rem}.purchase-list{display:grid;gap:.75rem}.purchase{padding:1rem;border:1px solid var(--line);border-radius:13px;background:#fff}.purchase h2{margin:0;color:var(--brown);font-size:1.08rem;line-height:1.45}.purchase p{margin:.2rem 0 .8rem;color:var(--muted);font-size:.84rem}.purchase .access-link{margin:0}.empty{padding:1rem;border:1px dashed var(--line);border-radius:12px;color:var(--muted);text-align:center}@keyframes spin{to{transform:rotate(1turn)}}@keyframes appear{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.skip{position:absolute;left:-999px}.skip:focus{z-index:1;left:1rem;top:1rem;padding:.5rem;background:#fff;color:var(--brown)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
