@import "https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:wght@400;500;700;800&family=Cormorant+Garamond:wght@600;700&display=swap";:root{--body-font:"Bricolage Grotesque", "Segoe UI", sans-serif;--display-font:"Cormorant Garamond", Georgia, serif;--paper:#f6eddc;--ink-strong:#4b3424;--ink-soft:#7a6657;--accent-strong:#d95d24;--shadow-strong:0 24px 60px #37160747;color:var(--ink-strong);font-family:var(--body-font);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:radial-gradient(circle at 0 0,#ffd3955c,#0000 32%),radial-gradient(circle at 90% 15%,#f0742c47,#0000 24%),linear-gradient(#91512a 0%,#6e3719 24%,#4d2e27 100%);font-size:17px;font-weight:400;line-height:1.5}*{box-sizing:border-box}html{scroll-behavior:smooth}body{min-height:100vh;margin:0}body:before{content:"";pointer-events:none;background:linear-gradient(130deg,#ffffff0d,#0000 24%),linear-gradient(#fff0d814,#0000 42%);position:fixed;inset:0}button,input,textarea{font:inherit}button{cursor:pointer}img{max-width:100%;display:block}#root{min-height:100vh}h1,h2,h3,p{margin-block:0}.app-shell{align-content:center;width:min(1320px,100%);min-height:100vh;margin:0 auto;padding:28px 18px 44px;display:grid}.book-stage{gap:22px;display:grid}.book-search{z-index:8;justify-self:center;width:min(720px,100%);position:relative}.book-search__field{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#f7efdfe0;border:1px solid #ab876b2e;border-radius:24px;gap:8px;padding:8px 9px;display:grid;box-shadow:0 18px 34px #250e061f}.book-search__eyebrow{color:var(--ink-soft);letter-spacing:.12em;text-transform:uppercase;font-size:.76rem;font-weight:800}.book-search__input{width:100%;color:var(--ink-strong);background:#fffcf7f5;border:1px solid #a17d623d;border-radius:16px;padding:6px 8px;font-size:1rem;box-shadow:inset 0 1px #ffffffe6}.book-search__input:focus{outline-offset:1px;outline:2px solid #ee5a246b}.book-search__input:disabled{cursor:not-allowed;opacity:.7}.book-search__suggestions{background:#fffcf7fa;border:1px solid #ab876b29;border-radius:20px;gap:6px;padding:10px;display:grid;position:absolute;top:calc(100% + 10px);left:0;right:0;box-shadow:0 22px 38px #250e0629}.book-search__suggestion{width:100%;color:var(--ink-strong);text-align:left;background:#71462b0f;border:0;border-radius:16px;gap:4px;padding:12px 14px;transition:transform .16s,background-color .16s;display:grid}.book-search__suggestion:hover,.book-search__suggestion:focus-visible{background:#ee5a241f;outline:none;transform:translateY(-1px)}.book-search__suggestion-name{font-size:.98rem;font-weight:800}.book-search__suggestion-meta,.book-search__empty{color:var(--ink-soft);font-size:.84rem}.book-search__empty{padding:12px 14px}.book-frame{grid-template-columns:64px minmax(0,1fr) 64px;align-items:center;gap:18px;width:min(1180px,100%);display:grid}.page-chevron-spacer{width:58px;height:58px}.flip-book-shell{filter:drop-shadow(0 32px 70px #240d0461);justify-items:center;width:100%;display:grid}.flip-book{width:min(1100px,100%)}.flip-book.stf__parent,.flip-book .stf__wrapper,.flip-book .stf__block,.flip-book .stf__item{overflow:visible!important}.flip-book.stf__parent{box-sizing:border-box;touch-action:pan-y;margin:0 auto;display:block;position:relative;transform:translateZ(0)}.flip-book .stf__wrapper{box-sizing:border-box;width:100%;position:relative}.flip-book .stf__block{box-sizing:border-box;perspective:2000px;width:100%;height:100%;position:absolute;inset:0}.flip-book .stf__item{transform-style:preserve-3d;display:none;position:absolute}.flip-book .stf__outerShadow,.flip-book .stf__innerShadow,.flip-book .stf__hardShadow,.flip-book .stf__hardInnerShadow{display:none!important}.fallback-book{width:min(520px,100%);margin:0 auto}.fallback-book .flip-page{aspect-ratio:520/760;width:100%}.fallback-book .flip-page__surface{height:100%}.flip-page{background:0 0}.flip-page__surface{box-sizing:border-box;height:100%;min-height:0;position:relative}.flip-page__surface--cover{color:#fff7ef;background:radial-gradient(circle at 0 0,#ffeeb647,#0000 28%),linear-gradient(135deg,#ffffff0f,#0000 30%),linear-gradient(#c55d1d 0%,#9f4315 36%,#713016 100%);border:1px solid #ffe2b838;border-radius:28px;justify-content:center;align-items:center;padding:54px 48px 48px;display:flex;overflow:hidden}.flip-page__surface--cover:before{content:"";pointer-events:none;border:1px solid #ffeac52e;border-radius:20px;position:absolute;inset:20px}.flip-page__surface--cover>*{z-index:1;position:relative}.flip-page__scroll{z-index:1;overscroll-behavior:contain;scrollbar-gutter:stable both-edges;flex-direction:column;gap:18px;height:100%;min-height:0;display:flex;position:relative}.flip-page__scroll>div,.flip-page__scroll>article{overflow:hidden auto}.flip-page__scroll::-webkit-scrollbar{width:10px}.flip-page__scroll::-webkit-scrollbar-track{background:#7f5c4314;border-radius:999px}.flip-page__scroll::-webkit-scrollbar-thumb{background:#794a2d66;border-radius:999px}.flip-page__surface--paper{clip-path:inset(0 round 28px);background:linear-gradient(#ffffff47,#0000),repeating-linear-gradient(#0000 0 37px,#9b7d660f 37px 38px),linear-gradient(#f7efdf 0%,#efe2cb 100%);border:1px solid #ab876b29;border-radius:28px;flex-direction:column;gap:18px;padding:34px 30px 56px;display:flex;overflow:hidden}.flip-page--entry .flip-page__surface--paper{padding:24px 22px 48px}.flip-page--entry .flip-page__scroll{padding-right:6px}.flip-page--front-cover,.flip-page--back-cover{color:#fff7ef}.book-cover-page{flex-direction:column;min-height:100%;display:flex}.cover-book__stamp{aspect-ratio:1973/2159;align-self:center;width:8rem;margin:10px 0 26px}.cover-book__stamp-svg{width:100%;height:100%;display:block}.cover-book__stamp-outline{fill:#f8d7a017;stroke:#ffeac538;stroke-width:2px}.back-cover{align-content:center;gap:14px;min-height:100%;display:grid}.back-cover__title{color:#fff7ef;text-align:center;margin:0;margin-top:-1rem;font-size:4rem;line-height:.95}.back-cover__copy{color:#fff6ead6;text-align:center;margin:0}.cover-book__eyebrow,.eyebrow{color:#f8d7a0;letter-spacing:.14em;text-transform:uppercase;text-align:center;margin:0 0 10px;font-size:.78rem;font-weight:800}.cover-book__title{color:#fff7ef;text-align:center;margin:0;font-size:4rem;line-height:.88}.cover-book__subtitle{color:#fff6eadb;max-width:18ch;margin:18px 0 0;font-size:1.1rem}.cover-book__stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:28px;display:grid}.cover-stat{text-align:center;background:#fff6e91a;border:1px solid #ffe7c52e;border-radius:16px;padding:12px 10px}.cover-stat__value{text-align:center;justify-content:center;align-items:center;font-size:1.3rem;font-weight:800;display:flex}.cover-stat__label{color:#fff4e5cc;text-align:center;justify-content:center;align-items:center;margin-top:2px;font-size:.78rem;line-height:1.2;display:flex}.cover-book__signatures{margin-top:28px}.signature-list{flex-wrap:wrap;gap:10px;display:flex}.signature-list__item{color:#fff5ea;background:#fff8ef24;border-radius:999px;padding:9px 14px;font-weight:700}.signature-list__item--button{border:1px solid #ffe7c52e;transition:transform .16s,background-color .16s,box-shadow .16s}.signature-list__item--button:hover,.signature-list__item--button:focus-visible{background:#fff8ef38;outline:none;transform:translateY(-1px);box-shadow:0 10px 18px #250e062e}.cover-book__empty,.field__hint,.book-page__empty p,.inline-message,.entry-card__footer,.preview-card__footer,.entry-meta,.preview-card__bio,.entry-card__bio,.entry-card__memory,.preview-card__memory{color:var(--ink-soft)}.book-page__number{color:#5a3c2b8c;font-weight:700;position:absolute;bottom:18px;right:26px}.page-copy{margin-bottom:4px}.page-copy--compact{margin-bottom:0}.section-title{color:var(--ink-strong);margin:0;font-size:clamp(1.9rem,3vw,2.7rem);line-height:1.02}.sign-form{gap:16px;display:grid}.field{gap:10px;display:grid}.field__label{color:var(--ink-strong);letter-spacing:.08em;text-transform:uppercase;font-size:.88rem;font-weight:800}.field__input,.field__textarea{width:100%;color:var(--ink-strong);background:#fffcf7eb;border:1px solid #a17d623d;border-radius:18px;padding:15px 16px;box-shadow:inset 0 1px #ffffffe6}.field__input:focus,.field__textarea:focus{outline-offset:1px;outline:2px solid #ee5a246b}.field__textarea{resize:vertical;min-height:118px}.accent-picker{flex-wrap:wrap;gap:8px;display:flex}.accent-swatch{color:#fffdf8;border:1px solid #0000;border-radius:999px;padding:7px 12px;font-size:.78rem;font-weight:700;box-shadow:0 8px 16px #4a250d24}.accent-swatch.is-active{border-color:#3a1f0e80;transform:translateY(-1px)}.form-actions{flex-wrap:wrap;gap:12px;display:flex}.button{letter-spacing:.02em;border:0;border-radius:18px;padding:14px 18px;font-weight:800;transition:transform .18s,filter .18s}.button:hover{transform:translateY(-1px)}.button:disabled,.refresh-link:disabled{cursor:not-allowed;opacity:.65;transform:none}.button--primary{color:#fff8ee;background:linear-gradient(#ee5a24,#d85823)}.button--ghost{color:var(--ink-strong);background:#6a3c1e1a}.inline-message{border-radius:16px;margin:0;padding:14px 16px;font-size:.95rem}.inline-message--error{color:#8f2b1d;background:#c137261a}.inline-message--success{color:#1f6948;background:#378e6624}.entry-card,.preview-card{--accent-color:#ee5a24;border:1px solid #ab876b33;border-top:14px solid var(--accent-color);background:#fffcf7f2;border-radius:24px;min-height:100%;padding:20px 22px 18px;position:relative;box-shadow:inset 0 1px #ffffffb3}.entry-card:before,.preview-card:before{content:"";background:#79482d2e;border-radius:999px;width:14px;height:14px;position:absolute;top:12px;right:16px;box-shadow:inset 0 2px 3px #ffffffb3}.entry-card--skeleton{border-top-color:#d79a3899}.skeleton{background:linear-gradient(90deg,#efe3d0e6,#f6f1e9,#efe3d0e6) 0 0/220% 100%;border-radius:999px;animation:1.6s linear infinite shimmer}.skeleton--title{width:60%;height:26px;margin-bottom:18px}.skeleton--line{width:100%;height:14px;margin-bottom:12px}.skeleton--short{width:72%}.entry-card__header,.preview-card__header{align-items:center;gap:14px;display:flex}.avatar,.avatar--large{object-fit:cover;background:#efe0c8;flex:none}.avatar{border-radius:22px;width:72px;height:72px}.avatar--large{border-radius:24px;width:88px;height:88px}.entry-handle,.entry-meta,.preview-card__footer,.entry-card__footer{color:var(--ink-soft)}.entry-handle{margin:0 0 4px;font-size:.9rem;font-weight:700}.entry-name,.preview-card h3{color:var(--ink-strong);margin:0;font-size:1.4rem;line-height:1.05}.entry-meta{margin:6px 0 0}.badge-row{flex-wrap:wrap;gap:8px;margin-top:16px;display:flex}.badge{color:var(--ink-strong);background:#71462b17;border-radius:999px;padding:7px 12px;font-size:.82rem;font-weight:700}.badge--highlight{color:var(--accent-strong);background:#ee5a2424}.entry-card__bio,.preview-card__bio{white-space:pre-wrap;min-height:56px;margin:16px 0 0}.entry-card__quote,.preview-card__quote{color:var(--ink-strong);font-family:var(--display-font);white-space:pre-wrap;margin:18px 0 0;font-size:1.55rem;line-height:1.1}.entry-card__memory,.preview-card__memory{border-left:3px solid var(--accent-color);white-space:pre-wrap;margin:12px 0 0;padding-left:14px}.entry-card__rooms{gap:14px;margin-top:18px;display:grid}.entry-card__rooms-intro{gap:4px;display:grid}.entry-card__rooms-label{color:var(--ink-strong);letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:.8rem;font-weight:800}.entry-card__rooms-copy{color:var(--ink-soft);margin:0;font-size:.92rem}.entry-card__rooms-state{color:var(--ink-strong);background:#71462b14;border-radius:18px;gap:10px;padding:16px 18px;display:grid}.entry-card__rooms-state--error{color:#8f2b1d;background:#c137261a}.room-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;display:grid}.room-card{background:#fff9f0f0;border:1px solid #ab876b2e;border-radius:20px;overflow:hidden;box-shadow:inset 0 1px #ffffffbf}.room-card__thumbnail{aspect-ratio:16/9;object-fit:cover;background:#ead7b7;width:100%;display:block}.room-card__body{gap:10px;padding:14px;display:grid}.room-card__title{color:var(--ink-strong);margin:0;font-size:1.02rem;line-height:1.08}.room-card__meta{color:var(--ink-soft);margin:4px 0 0;font-size:.78rem}.room-card__description{color:var(--ink-soft);white-space:pre-wrap;margin:0;font-size:.9rem;line-height:1.35}.room-card__stats{flex-wrap:wrap;gap:8px;display:flex}.room-card__stat{color:var(--ink-strong);background:#71462b14;border-radius:999px;padding:6px 10px;font-size:.76rem;font-weight:700}.entry-card__actions{z-index:4;gap:10px;width:100%;margin-top:18px;padding:18px;display:grid;position:fixed;bottom:0;left:0}.entry-card__action-row{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffcf7f2;border:1px solid #a17d622e;border-radius:999px;flex-wrap:wrap;gap:10px;width:fit-content;padding:10px;display:flex;box-shadow:0 16px 28px #4a250d1f}.vote-button,.entry-card__rooms-button,.room-card__retry{color:var(--ink-strong);letter-spacing:.02em;background:#fffcf7f5;border:1px solid #a17d6242;border-radius:999px;justify-self:start;padding:10px 14px;font-size:.84rem;font-weight:800;transition:transform .16s,box-shadow .16s,background-color .16s;box-shadow:0 8px 16px #4a250d14}.vote-button:hover:not(:disabled),.entry-card__rooms-button:hover:not(:disabled),.room-card__retry:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 10px 18px #4a250d1f}.vote-button.is-voted{color:var(--accent-strong);background:#ee5a241f;border-color:#ee5a2433}.entry-card__rooms-button{background:#71462b14}.entry-card__rooms-button.is-active{color:var(--accent-strong);background:#ee5a241f;border-color:#ee5a2433}.vote-button:disabled,.entry-card__rooms-button:disabled,.room-card__retry:disabled{cursor:default;opacity:.82;transform:none}.entry-card__vote-error{color:#8f2b1d;margin:0;padding-left:12px;font-size:.84rem}.entry-card__footer,.preview-card__footer{justify-content:space-between;gap:12px;margin-top:20px;font-size:.9rem;display:flex}.entry-card__footer{padding-bottom:calc(84px + env(safe-area-inset-bottom,0px))}.preview-card--empty,.preview-card--loading{align-content:center;gap:12px;min-height:320px;display:grid}.preview-card--empty h3,.preview-card--loading h3,.book-page__empty h3{color:var(--ink-strong);margin:0;font-size:1.55rem}.preview-card--empty p,.preview-card--loading p,.book-page__empty p{margin:0}.book-page__empty{background:#fffbf5a8;border:1px dashed #a07e6366;border-radius:24px;align-content:center;gap:12px;min-height:100%;padding:30px 24px;display:grid}.page-rail{align-content:center;gap:10px;display:grid}.page-rail--left{justify-items:end}.page-rail--right{justify-items:start}.page-chevron,.page-jump-button{color:#6b3918;background:#f7efdfeb;border:0;border-radius:999px;place-items:center;width:58px;transition:transform .18s,box-shadow .18s,opacity .18s;display:grid;box-shadow:0 18px 34px #250e0638}.page-chevron{height:58px;font-size:2.2rem;line-height:1}.page-jump-button{letter-spacing:.04em;text-transform:uppercase;min-height:40px;padding:0 10px;font-size:.72rem;font-weight:800}.page-chevron span{transform:translateY(-1px)}.page-chevron:hover:not(:disabled),.page-jump-button:hover:not(:disabled){transform:translateY(-1px)scale(1.02);box-shadow:0 22px 40px #250e0642}.page-chevron:disabled,.page-jump-button:disabled{opacity:.35;cursor:not-allowed;box-shadow:none}.page-chevron--left{justify-self:end}.page-chevron--right{justify-self:start}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-20% 0}}@media (width<=1120px){.book-frame{grid-template-columns:52px minmax(0,1fr) 52px;gap:12px}.page-chevron,.page-chevron-spacer,.page-jump-button{width:52px}.page-chevron-spacer{height:52px}.page-chevron{height:52px;font-size:2rem}.page-jump-button{min-height:36px;font-size:.68rem}}@media (width<=780px){.app-shell{padding-inline:12px}.book-search__field{padding:14px}.book-search__suggestions{margin-top:10px;position:static}.flip-page__surface--cover,.flip-page__surface--paper{padding:26px 20px 48px}.cover-book__stats{grid-template-columns:repeat(2,minmax(0,1fr))}.form-actions,.entry-card__footer,.preview-card__footer{flex-direction:column;align-items:stretch}}
