:root{--night: #14243a;--night-2: #1d3354;--gold: #d6b46a;--gold-2: #f4e6c4;--ivory: #faf8f3;--white: #ffffff;--mist: #eae8e2;--ink: #172033;--muted: #5e6978;--line: rgba(20, 36, 58, .12);--danger: #8d3d3d;--ok: #1d6b48;--serif: "Playfair Display", Georgia, serif;--sans: Manrope, "Segoe UI", sans-serif;--shadow: 0 24px 70px rgba(20, 36, 58, .08)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--ivory);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.6}button,input,textarea,select{font:inherit;color:inherit}a{color:inherit}img{max-width:100%;display:block}h1,h2,h3,p{margin:0}.eyebrow{margin:0 0 12px;color:var(--gold);font-size:.74rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase}.muted{color:var(--muted)}.center{min-height:100vh;display:grid;place-items:center;padding:32px 18px}.btn,.text-link{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:0 18px;border-radius:999px;border:1px solid transparent;text-decoration:none;cursor:pointer;background:transparent}.btn-gold{background:var(--gold);color:var(--night);font-weight:700}.btn-night{background:var(--night);color:var(--ivory)}.btn-ghost{border-color:var(--line);background:transparent}.btn-danger{color:var(--danger);border-color:#8d3d3d4d}.btn[disabled]{opacity:.55;cursor:not-allowed}.text-link{min-height:auto;padding:0;border-radius:0;text-decoration:underline;text-underline-offset:4px}.field{display:grid;gap:8px}.field span{font-size:.86rem;font-weight:650}.field input,.field textarea,.field select{width:100%;border:1px solid var(--line);background:var(--white);border-radius:14px;padding:14px 16px;outline:none}.field textarea{min-height:150px;resize:vertical}.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--gold)}.field small{color:var(--danger)}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}.stack{display:grid;gap:16px}.alert{padding:12px 14px;border-radius:14px;background:#8d3d3d14;color:var(--danger)}.note{padding:12px 14px;border-radius:14px;background:var(--gold-2);color:var(--night)}.auth-card,.panel,.wish-card,.stat{background:var(--white);border:1px solid var(--line);box-shadow:var(--shadow)}.auth-card{width:min(460px,100%);padding:36px 32px;border-radius:28px}.auth-card h1,.panel h1,.panel h2{font-family:var(--serif);font-weight:500}.panel{border-radius:24px;padding:24px}.stat-grid,.card-grid{display:grid;gap:16px}.stat-grid{grid-template-columns:repeat(3,1fr)}.stat{border-radius:22px;padding:20px}.stat strong{display:block;margin-top:8px;font-family:var(--serif);font-size:2.2rem;font-weight:500}.stat span{color:var(--muted);font-size:.92rem}.shell{min-height:100vh;display:grid;grid-template-columns:250px 1fr}.sidebar{background:var(--night);color:var(--ivory);padding:28px 18px;display:flex;flex-direction:column;gap:22px}.brand{font-family:var(--serif);font-size:1.8rem;padding:0 10px}.sidebar nav{display:grid;gap:6px}.sidebar a,.sidebar button{color:var(--ivory);text-decoration:none;text-align:left;background:transparent;border:0;border-radius:12px;padding:12px;cursor:pointer}.sidebar a.active,.sidebar a:hover{background:#ffffff14}.sidebar .spacer{flex:1}.main{padding:32px;display:grid;gap:22px;align-content:start}.page-head,.row{display:flex;justify-content:space-between;gap:16px;align-items:center}.page-head h1{font-family:var(--serif);font-size:clamp(2rem,4vw,3.2rem);font-weight:500}.table{width:100%;border-collapse:collapse}.table th,.table td{text-align:left;padding:12px 8px;border-bottom:1px solid var(--line);vertical-align:top}.table th{color:var(--muted);font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;font-weight:700}.stage{background:var(--ivory);color:var(--ink)}.hero{position:relative;min-height:100vh;display:grid;align-items:end;padding:28px 8vw 10vh;color:var(--ivory);background:radial-gradient(circle at 80% 10%,color-mix(in srgb,var(--gold) 28%,transparent),transparent 28%),linear-gradient(180deg,color-mix(in srgb,var(--night) 80%,black),var(--night));overflow:hidden}.hero canvas,.book-hero canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.topbar,.hero-copy,.float-control{position:relative;z-index:1}.topbar{position:absolute;top:22px;left:8vw;right:8vw;display:flex;justify-content:space-between;align-items:center;letter-spacing:.14em;text-transform:uppercase;font-size:.75rem}.topbar a{text-decoration:none}.hero-copy{max-width:920px}.hero h1{font-family:var(--serif);font-weight:500;font-size:clamp(3.4rem,9vw,7.4rem);line-height:.92;letter-spacing:-.03em}.identity{margin-top:22px;font-size:clamp(1rem,2vw,1.25rem);letter-spacing:.16em;text-transform:uppercase}.portrait{width:176px;height:176px;object-fit:cover;object-position:center 18%;border-radius:50%;border:1px solid color-mix(in srgb,var(--gold) 70%,white);margin-bottom:22px;box-shadow:0 18px 50px #00000047}.homage,.form-section,.reader,.room{padding:10vh 8vw}.homage{max-width:980px}.homage h2,.reader h1,.room h1,.success h2{font-family:var(--serif);font-weight:500;font-size:clamp(2rem,4vw,3.4rem);line-height:1.15}.typewriter{margin-top:28px;font-size:1.18rem;white-space:pre-wrap;max-width:68ch}.caret{display:inline-block;width:1px;height:1em;margin-left:2px;background:var(--gold);animation:blink 1s steps(1) infinite}.form-card,.success{max-width:760px}.form-card{display:grid;gap:16px;margin-top:28px}.preview{display:flex;align-items:center;gap:14px}.preview img,.avatar,.avatar-fallback{width:72px;height:72px;border-radius:50%;object-fit:cover}.avatar-fallback{display:grid;place-items:center;background:var(--night);color:var(--gold-2);font-family:var(--serif)}.wish-list{display:grid;gap:18px;margin-top:34px}.wish-card{border-radius:28px;padding:22px;display:grid;grid-template-columns:auto 1fr;gap:16px;animation:rise .8s ease both}.wish-card header{display:flex;justify-content:space-between;gap:12px}.wish-card h3{font-size:1.05rem}.wish-card p{margin-top:8px;white-space:pre-wrap}.reply{margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}.reply small{color:var(--gold);letter-spacing:.12em;text-transform:uppercase;font-weight:700}.book-hero{position:relative;min-height:68vh;display:grid;align-items:start;padding:96px 8vw 8vh;color:var(--ivory);background:var(--night);overflow:hidden}.float-control{position:sticky;bottom:calc(18px + env(safe-area-inset-bottom,0px));display:flex;justify-content:center;z-index:5;padding-bottom:calc(18px + env(safe-area-inset-bottom,0px));touch-action:manipulation}.room{background:var(--ivory)}.filters{display:flex;flex-wrap:wrap;gap:8px}.filters button[aria-pressed=true]{background:var(--night);color:var(--ivory)}.composer{display:grid;gap:10px;margin-top:14px}.composer textarea{min-height:110px;border-radius:16px;border:1px solid var(--line);padding:12px}.links{display:grid;gap:12px}.link-row{display:grid;grid-template-columns:140px 1fr auto;gap:10px;align-items:center}.link-row code{overflow-wrap:anywhere;font-size:.84rem}.qr{width:180px;height:180px;background:var(--ivory);border-radius:18px;padding:10px}@keyframes rise{0%{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}@keyframes blink{50%{opacity:0}}@media(max-width:900px){.shell{grid-template-columns:1fr}.sidebar{position:sticky;top:0;z-index:5;flex-direction:row;align-items:center;overflow:auto;padding:14px}.sidebar nav{display:flex}.sidebar .spacer,.brand{display:none}.main{padding:18px}.stat-grid,.grid-2,.link-row{grid-template-columns:1fr}.page-head,.row{align-items:stretch;flex-direction:column}.hero,.homage,.form-section,.reader,.room,.book-hero{padding-left:20px;padding-right:20px}.wish-card{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;scroll-behavior:auto!important;transition:none!important}}
