/* Private book display. Native cover/page media and reader engines stay unchanged. */
#cxfa-app .cxfa-showcase{position:relative;isolation:isolate;width:100%;min-width:0;overflow:hidden;padding:0 0 12px;border:1px solid #dce1e9;border-radius:12px;background:#fff;box-shadow:0 12px 34px #1720330d;text-align:center;box-sizing:border-box}
#cxfa-app .cxfa-showcase[hidden]{display:block!important}
#cxfa-app .cxfa-showcase [hidden]{display:none!important}
/* The room is a static local image, confined to the area before the reading action. */
#cxfa-app .cxfa-showcase-scene{position:relative;isolation:isolate;overflow:hidden;padding:20px 8px 12px;border-radius:11px 11px 0 0;background-color:#ede5dc;background-image:linear-gradient(180deg,#ffffff10 0%,#ffffff00 62%,#ffffffa8 100%),url("./atelier-new-york-v1.webp");background-size:cover;background-position:50% 56%;background-repeat:no-repeat}
#cxfa-app .cxfa-showcase-kicker{position:absolute;z-index:4;top:12px;left:14px;max-width:calc(100% - 28px);margin:0;padding:5px 9px;border:1px solid #ffffffb0;border-radius:6px;background:#ffffffe3;color:#384458;font-size:10px;font-weight:750;line-height:1.3;letter-spacing:.06em;text-transform:uppercase;box-shadow:0 2px 10px #17203308}
/* Warm light and fine sparks stay directly behind the book, never over the controls. */
#cxfa-app .cxfa-showcase-halo{position:absolute;z-index:0;left:50%;top:46%;width:min(82%,360px);height:76%;max-height:370px;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(ellipse,#fff8dfb0 0%,#fff4b96b 34%,#d7e9ff33 56%,transparent 72%);filter:blur(22px);opacity:.7;pointer-events:none;animation:cxfa-table-light 12s ease-in-out infinite alternate}
#cxfa-app .cxfa-book-stage{position:relative;z-index:2;width:min(90%,380px);height:350px;margin:24px auto 6px;perspective:1500px;transform-style:preserve-3d}
#cxfa-app .cxfa-book-stage::before{content:"";position:absolute;z-index:0;inset:-5% -8% 0;pointer-events:none;opacity:.62;background:radial-gradient(circle at 13% 25%,#fff8c7 0 2px,transparent 3px),radial-gradient(circle at 90% 39%,#fffaf1 0 2px,transparent 3px),radial-gradient(circle at 21% 67%,#d9ecff 0 1px,transparent 2px),radial-gradient(circle at 85% 75%,#fff5b7 0 1.5px,transparent 2.5px),linear-gradient(64deg,transparent 0 49%,#fff7ce9e 50%,transparent 51%) 11% 47%/18px 42px no-repeat,linear-gradient(117deg,transparent 0 49%,#edf6ffb3 50%,transparent 51%) 91% 21%/18px 38px no-repeat;animation:cxfa-table-sparks 7s ease-in-out infinite alternate}
/* Only a soft contact shadow on the table: no disk, pedestal or outlined platform. */
#cxfa-app .cxfa-book-stage::after{content:"";position:absolute;z-index:0;left:8%;right:4%;bottom:-2px;height:22px;border:0;border-radius:0;background:radial-gradient(ellipse,#17203352 0%,#17203326 34%,transparent 72%);filter:blur(7px);box-shadow:none;pointer-events:none}
#cxfa-app .cxfa-book-object{position:absolute;z-index:2;top:0;bottom:12px;left:45%;right:auto;width:auto;height:calc(100% - 12px);aspect-ratio:2/3;transform-origin:50% 100%;transform-style:preserve-3d;transform:translateX(-50%) rotateZ(-1.8deg) rotateY(-4deg)}
#cxfa-app .cxfa-book-page,#cxfa-app .cxfa-book-cover{position:absolute;inset:0;border-radius:3px 9px 9px 3px;transform-origin:0 50%;overflow:hidden;box-sizing:border-box}
/* Stable binding in every loading phase: the cover stays in front and the
   interior sheet only peeks out behind its right edge. Never swap these planes. */
#cxfa-app .cxfa-book-page{z-index:1;left:12%;right:-22%;top:6px;bottom:3px;transform:translateZ(0) rotateY(8deg) rotateZ(3deg);background:#f6efe1;box-shadow:4px 2px 0 #e7dbc6,7px 3px 0 #d6c6af,10px 4px 0 #eae1d1,14px 14px 22px #1720334d}
#cxfa-app .cxfa-book-cover{z-index:2;transform:translateZ(10px) rotateY(-3deg);background:#fbf4e8;border:1px solid #353d51;box-shadow:inset 8px 0 10px #5546331a,3px 0 0 #473e5f,8px 12px 23px #17203361}
#cxfa-app .cxfa-book-cover::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,#090b272b,transparent 4%,#ffffff20 6%,transparent 11%,transparent 85%,#ffffff14);border-radius:inherit}
#cxfa-app .cxfa-book-cover>img,#cxfa-app .cxfa-book-page>img{position:absolute;z-index:4;inset:0;display:block;width:100%;height:100%;object-fit:contain;background:#fff3df;animation:cxfa-media-reveal .7s ease both}
#cxfa-app .cxfa-book-cover>img[hidden],#cxfa-app .cxfa-book-page>img[hidden]{display:none!important}
/* Existing sketch and private-photo preparation, with the same media and states. */
#cxfa-app .cxfa-book-sketch{position:absolute;z-index:0;inset:0;color:#56506c;background:repeating-linear-gradient(1deg,#fff7ea,#fff7ea 7px,#f7efdf 8px);overflow:hidden}
#cxfa-app .cxfa-sketch-atlas{position:absolute;z-index:1;left:3%;top:36%;width:94%;aspect-ratio:1;overflow:hidden;border-radius:4px;opacity:0;transition:opacity .8s ease;pointer-events:none}
#cxfa-app .cxfa-case-sketch .cxfa-sketch-atlas{top:18%}
#cxfa-app .cxfa-sketch-layer{position:absolute;inset:0;display:block;opacity:0;background-image:url("./discovery-sketches-v1.webp");background-size:400% 500%;background-position:var(--cxfa-sketch-x,0%) var(--cxfa-sketch-y,0%);background-repeat:no-repeat;transition:opacity 1s ease;pointer-events:none}
#cxfa-app .cxfa-sketch-layer[data-visible=true]{opacity:1}
#cxfa-app .cxfa-showcase[data-atlas-ready=true] .cxfa-sketch-atlas{opacity:1}
#cxfa-app .cxfa-showcase[data-atlas-ready=true] .cxfa-pencil-art{opacity:.18}
#cxfa-app .cxfa-sketch-brand,#cxfa-app .cxfa-sketch-title{z-index:2}
#cxfa-app .cxfa-pencil-art{width:100%;height:100%;opacity:.7}
#cxfa-app .cxfa-pencil-art path{stroke-width:2.1;stroke-dasharray:2400;stroke-dashoffset:2400;animation:cxfa-pencil-draw 8s ease-in-out infinite alternate}
#cxfa-app .cxfa-pencil-art .cxfa-pencil-soft{stroke-width:1;opacity:.45;animation-delay:.4s}
#cxfa-app .cxfa-pencil-art .cxfa-pencil-spark{stroke-width:2.6;animation-delay:1.5s}
#cxfa-app .cxfa-sketch-brand{position:absolute;top:3%;left:8%;font-size:10px;line-height:1;font-weight:900;letter-spacing:.23em;color:#625573}
#cxfa-app .cxfa-sketch-title{position:absolute;top:8%;left:8%;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;width:84%;max-height:3.3em;overflow:hidden;margin:0;padding:0;font-family:Impact,"Arial Black",sans-serif;font-size:clamp(14px,1.25vw,20px);line-height:1.1;text-align:left;overflow-wrap:anywhere;transform:rotate(-2deg);color:#51435d;text-shadow:1px 1px #fff5da}
#cxfa-app .cxfa-case-sketch{position:absolute;z-index:0;inset:0;padding:8%;display:grid;grid-template-columns:1fr 1fr;gap:7px;background:#fff8e9;box-sizing:border-box}
#cxfa-app .cxfa-case-sketch>span{position:relative;overflow:hidden;border:1.5px solid #66607a;background:repeating-linear-gradient(135deg,transparent,transparent 10px,#66547e0a 11px);animation:cxfa-case-ink 5s ease-in-out infinite alternate}
#cxfa-app .cxfa-case-sketch>span:first-child{grid-column:1/-1}
#cxfa-app .cxfa-case-sketch>span::before{content:"";position:absolute;width:65%;height:60%;left:20%;top:30%;border:2px solid #66607a77;border-radius:47% 47% 0 0;transform:rotate(-14deg)}
#cxfa-app .cxfa-case-sketch>span::after{content:"";position:absolute;top:9%;left:10%;width:63%;height:24%;border:1px solid #7f718c;border-radius:50%;background:#fffaf0}
#cxfa-app .cxfa-cast-trail{position:absolute;z-index:3;inset:0;pointer-events:none}
#cxfa-app .cxfa-showcase[data-cover-available=true] .cxfa-cast-trail{display:none!important}
#cxfa-app .cxfa-showcase[data-temporary-available=true] .cxfa-cast-trail{display:none!important}
#cxfa-app .cxfa-cast-token{position:absolute;left:var(--cxfa-token-x,55%);top:var(--cxfa-token-y,47%);width:25%;aspect-ratio:.83;background:#fffaf0;padding:4px 4px 14px;box-shadow:2px 4px 10px #1b17383a;transform:rotate(var(--cxfa-token-angle,-8deg));border:1px solid #d3c8c0;box-sizing:border-box;animation:cxfa-cast-arrive 5s calc(var(--cxfa-token-index,0)*.6s) ease-in-out infinite}
#cxfa-app .cxfa-cast-token img{display:block;width:100%;height:100%;object-fit:cover;filter:saturate(.82);border-radius:1px}
#cxfa-app .cxfa-cast-token span{position:absolute;bottom:1px;left:2px;right:2px;font-size:7px;color:#51445e;line-height:1.1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
#cxfa-app .cxfa-cover-cast .cxfa-cast-token{top:max(42%,var(--cxfa-token-y,47%))}
#cxfa-app .cxfa-book-loader{position:relative;z-index:5;width:94%;max-width:460px;margin:14px auto 0;padding:12px 14px;border:1px solid #e7c1d0;border-top:3px solid #e60059;border-radius:12px;background:#fffffff5;color:#172033;box-shadow:0 12px 28px #17203329;text-align:left}
#cxfa-app .cxfa-waiting-rail{display:contents}
#cxfa-app .cxfa-loader-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:9px}
#cxfa-app #cxfa-loader-phase{min-width:0;max-width:75%;font:800 15px/1.3 Inter,system-ui,sans-serif;color:#172033}
#cxfa-app #cxfa-progress-percent{flex:0 0 auto;display:block;color:#e60059;font:800 26px/1 Inter,system-ui,sans-serif;font-variant-numeric:tabular-nums;letter-spacing:-.04em;white-space:nowrap}
#cxfa-app .cxfa-progress-indicator{margin:0 0 10px}
#cxfa-app .cxfa-progress-meter{height:12px;overflow:hidden;border:1px solid #f0d4df;border-radius:99px;background:#f8e8ef}
#cxfa-app #cxfa-progress-fill{display:block;width:var(--cxfa-progress,0%);height:100%;border-radius:inherit;background:linear-gradient(90deg,#e60059,#ff7aa8);transition:width .7s ease}
#cxfa-app #cxfa-progress-estimate{display:block;margin-top:5px;color:#526077;font:500 11px/1.4 Inter,system-ui,sans-serif}
#cxfa-app .cxfa-showcase[data-read-ready=true] #cxfa-progress-fill{background:#287442}
#cxfa-app .cxfa-showcase[data-read-ready=true] .cxfa-loader-steps{display:none}
#cxfa-app .cxfa-showcase[data-stage=failed] #cxfa-progress-fill{background:#8b6674}
#cxfa-app .cxfa-book-loader .cxfa-progress{display:flex;align-items:center;justify-content:flex-start;gap:8px;min-height:24px;margin:0;padding:0;border:0;background:none;color:#526077;font-size:11px;line-height:1.35}
#cxfa-app .cxfa-book-loader .cxfa-progress>strong{font-weight:500}
#cxfa-app .cxfa-book-loader .cxfa-spinner{display:block;flex:0 0 auto;width:16px;height:16px;border:2px solid #f1d7e0;border-right-color:#e60059;border-radius:50%;animation:cxfa-loader-spin 1s linear infinite}
#cxfa-app .cxfa-loader-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin:10px 0 0!important;padding:0!important;list-style:none!important}
#cxfa-app .cxfa-loader-steps li{display:flex;align-items:center;gap:4px;min-width:0;margin:0!important;padding:5px 3px;border-radius:5px;background:#f5f6f8;color:#687386;font:600 9px/1.2 Inter,system-ui,sans-serif;list-style:none!important}
#cxfa-app .cxfa-loader-steps li>span{display:grid;place-items:center;flex:0 0 15px;width:15px;height:15px;border:1px solid #dce1e9;border-radius:50%;font-size:8px}
#cxfa-app .cxfa-loader-steps [data-state=active]{background:#fff0f6;color:#ac0043}
#cxfa-app .cxfa-loader-steps [data-state=active]>span{background:#e60059;border-color:#e60059;color:#fff}
#cxfa-app .cxfa-loader-steps [data-state=done]{background:#e6f2e9;color:#287442}
#cxfa-app .cxfa-loader-steps [data-state=done]>span{border-color:#b9d6c1;background:#fff}
#cxfa-app .cxfa-retry-previews{display:flex;align-items:center;justify-content:center;min-height:44px;width:100%;margin:10px 0 0;padding:8px 10px;border:1px solid #8c97a9;border-radius:7px;background:#fff;color:#172033;font:650 12px/1.3 Inter,system-ui,sans-serif;cursor:pointer}
#cxfa-app .cxfa-book-loader::after{content:"";display:block;height:2px;margin-top:8px;background:linear-gradient(90deg,transparent,#e60059,#ffe223,transparent);background-size:200% 100%;animation:cxfa-loading-ink 2.2s linear infinite}
#cxfa-app .cxfa-temporary-brand{position:absolute;z-index:5;top:5%;left:25%;right:25%;height:10%;display:flex;align-items:center;justify-content:center;margin:0;color:#172033;font:900 24px/1 Impact,"Arial Black",sans-serif;text-align:center;pointer-events:none}
#cxfa-app .cxfa-temporary-brand img{display:block;width:100%;height:100%;max-width:100%;object-fit:contain}
#cxfa-app .cxfa-temporary-note{position:relative;z-index:5;display:flex;align-items:center;gap:9px;width:94%;max-width:460px;min-height:54px;margin:10px auto 0;padding:9px 12px;border:1px solid #e6d3de;border-radius:9px;background:#fff8fb;color:#172033;text-align:left}
#cxfa-app .cxfa-temporary-note>div{flex:1;min-width:0}
#cxfa-app .cxfa-temporary-note strong{display:block;font:750 12px/1.35 Inter,system-ui,sans-serif}
#cxfa-app .cxfa-temporary-note small{display:block;margin-top:3px;color:#675476;font:500 11px/1.35 Inter,system-ui,sans-serif}
#cxfa-app .cxfa-temporary-spinner{display:block;flex:0 0 14px;width:14px;height:14px;border:2px solid #f0d4df;border-right-color:#e60059;border-radius:50%;animation:cxfa-loader-spin 1s linear infinite}
#cxfa-app #cxfa-temporary-retry{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:7px 9px;border:1px solid #a68b9a;border-radius:7px;background:#fff;color:#172033;font:650 11px/1.3 Inter,system-ui,sans-serif;cursor:pointer}
#cxfa-app .cxfa-patience-card{position:relative;z-index:5;display:flex;flex-direction:column;align-items:stretch;gap:12px;width:94%;max-width:460px;min-height:385px;margin:10px auto 0;padding:16px;overflow:hidden;border:1px solid #d8c8bb;border-radius:14px;background:linear-gradient(150deg,#fffdf7,#fff7e8);color:#172033;text-align:left;box-shadow:0 8px 26px #17203314;animation:cxfa-media-reveal .5s ease both;box-sizing:border-box}
#cxfa-app .cxfa-patience-masthead{display:flex;align-items:center;gap:10px;padding:0 0 14px;border-bottom:1px solid #ddcdbb;background:none}
#cxfa-app .cxfa-patience-stamp{display:grid;place-items:center;flex:0 0 39px;width:39px;height:39px;border:1.5px solid #bc974f;border-radius:12px;background:#ffedb7;color:#73551c;font:800 28px/1 system-ui;transform:rotate(-7deg)}
#cxfa-app .cxfa-patience-masthead>div:not(.cxfa-patience-avatars){flex:1;min-width:0}
#cxfa-app .cxfa-patience-masthead small{display:block;margin:0 0 5px;font:800 9px/1.3 Inter,system-ui,sans-serif;letter-spacing:.12em;color:#806b4a}
#cxfa-app #cxfa-patience-heading{margin:0!important;padding:0;color:#172033;font:850 19px/1.15 Inter,system-ui,sans-serif!important;letter-spacing:-.04em;text-transform:none}
#cxfa-app .cxfa-patience-avatars{display:flex;align-items:center;gap:5px;flex:0 0 auto;max-width:82px}
#cxfa-app .cxfa-patience-avatars:empty{display:none}
#cxfa-app .cxfa-patience-person{display:flex;flex-direction:column;align-items:center;gap:3px;width:36px;max-width:36px;min-width:0}
#cxfa-app .cxfa-patience-person img{display:block;width:34px;height:34px;max-width:none;border:2px solid #fff;border-radius:50%;object-fit:cover;box-shadow:0 1px 4px #17203320}
#cxfa-app .cxfa-patience-person span{display:block;width:100%;overflow:hidden;color:#526077;font:600 9px/1.2 Inter,system-ui,sans-serif;white-space:nowrap;text-overflow:ellipsis;text-align:center}
#cxfa-app .cxfa-patience-text{min-width:0;flex:1;min-height:230px}
#cxfa-app .cxfa-patience-category{display:flex;align-items:center;gap:7px;min-height:25px;margin-bottom:9px;color:#7b6135}
#cxfa-app #cxfa-patience-icon{display:inline-block;font-size:22px;line-height:1.1;transform-origin:50% 80%}
#cxfa-app #cxfa-patience-kicker{font:700 10px/1.35 Inter,system-ui,sans-serif;letter-spacing:.015em}
#cxfa-app #cxfa-patience-title{margin:0 0 12px!important;padding:0;color:#172033;font:850 22px/1.15 Inter,system-ui,sans-serif!important;letter-spacing:-.035em;text-transform:none;overflow-wrap:anywhere;transform-origin:15% 70%}
#cxfa-app #cxfa-loader-joke{display:block;max-height:none;overflow:visible;margin:0;color:#384458;font:450 13px/1.62 Inter,system-ui,sans-serif;overflow-wrap:anywhere}
#cxfa-app #cxfa-loader-joke p{margin:0 0 10px;padding:0;font:inherit;color:inherit}
#cxfa-app #cxfa-loader-joke p:last-child{margin:0;font-weight:750;color:#263448}
#cxfa-app .cxfa-patience-card[data-entry-parity=even] #cxfa-patience-title{animation:cxfa-chronicle-bounce-a .7s cubic-bezier(.22,.8,.3,1) both}
#cxfa-app .cxfa-patience-card[data-entry-parity=odd] #cxfa-patience-title{animation:cxfa-chronicle-bounce-b .7s cubic-bezier(.22,.8,.3,1) both}
#cxfa-app .cxfa-patience-card[data-entry-parity=even] #cxfa-patience-icon{animation:cxfa-chronicle-wiggle-a .9s ease both}
#cxfa-app .cxfa-patience-card[data-entry-parity=odd] #cxfa-patience-icon{animation:cxfa-chronicle-wiggle-b .9s ease both}
#cxfa-app .cxfa-patience-pagination{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:auto;padding-top:10px;border-top:1px dashed #d6c7b2;background:none}
#cxfa-app #cxfa-patience-number{font:750 11px/1.3 Inter,system-ui,sans-serif;font-variant-numeric:tabular-nums;color:#7b6135}
#cxfa-app .cxfa-patience-pagination>div{display:flex;align-items:center;gap:5px}
#cxfa-app .cxfa-patience-pagination button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-width:44px;min-height:44px;max-width:100%;margin:0;padding:9px 10px;border:1px solid #cbb898;border-radius:7px;background:#fffaf0;color:#62491e;font:750 11px/1.3 Inter,system-ui,sans-serif;cursor:pointer;box-sizing:border-box}
#cxfa-app .cxfa-patience-pagination button:hover{background:#ffedb7;border-color:#aa843e}
#cxfa-app .cxfa-patience-pagination button:disabled{opacity:.4;cursor:default}
#cxfa-app .cxfa-patience-pagination button:focus-visible{outline:3px solid #334caa;outline-offset:2px}
#cxfa-app .cxfa-patience-disclaimer{display:block;margin:-5px 0 0;color:#87765d;font:450 9px/1.4 Inter,system-ui,sans-serif}
#cxfa-app[data-room-mode=night] .cxfa-patience-card{border-color:#596476;background:linear-gradient(145deg,#202b3d,#172133);color:#edf1f8;box-shadow:0 10px 30px #0003}
#cxfa-app[data-room-mode=night] .cxfa-patience-masthead{border-color:#536073}
#cxfa-app[data-room-mode=night] .cxfa-patience-stamp{border-color:#ac945a;background:#443a22;color:#f2d996}
#cxfa-app[data-room-mode=night] :is(#cxfa-patience-heading,#cxfa-patience-title){color:#f3e5c5!important}
#cxfa-app[data-room-mode=night] :is(.cxfa-patience-masthead small,.cxfa-patience-category,#cxfa-patience-number){color:#dac597}
#cxfa-app[data-room-mode=night] #cxfa-loader-joke{color:#cbd5e5}
#cxfa-app[data-room-mode=night] #cxfa-loader-joke p:last-child{color:#f0e4c8}
#cxfa-app[data-room-mode=night] .cxfa-patience-pagination{border-color:#536073}
#cxfa-app[data-room-mode=night] .cxfa-patience-pagination button{background:#28364b;border-color:#6e7e96;color:#f0e4c8}
#cxfa-app[data-room-mode=night] .cxfa-patience-pagination button:hover{background:#3d4350;border-color:#c1aa74}
#cxfa-app[data-room-mode=night] .cxfa-patience-pagination button:focus-visible{outline-color:#90b8ff}
#cxfa-app[data-room-mode=night] :is(.cxfa-patience-disclaimer,.cxfa-patience-person span){color:#aebbd0}
#cxfa-app .cxfa-book-caption{position:relative;z-index:3;display:table;max-width:92%;min-height:21px;margin:5px auto 0;padding:4px 9px;border:1px solid #ffffffb3;border-radius:6px;background:#ffffffe6;color:#384458;font-size:12px;line-height:1.4}
/* The reading action is on a calm clear surface, outside the room image. */
#cxfa-app .cxfa-read-book{display:flex;align-items:center;justify-content:center;gap:11px;width:calc(100% - 32px);max-width:405px;min-height:56px;margin:12px auto 0;padding:12px 20px;border:2px solid #e60059;border-radius:8px;background:#e60059;color:#fff!important;box-shadow:none;font:800 19px/1.3 Inter,system-ui,sans-serif;text-decoration:none!important;box-sizing:border-box;transition:background-color .15s,border-color .15s}
#cxfa-app .cxfa-read-book>span:first-child{font-size:25px;line-height:1}
#cxfa-app .cxfa-read-book:hover{background:#c4004c;border-color:#c4004c}
#cxfa-app .cxfa-read-book:not([aria-disabled=true]){animation:cxfa-reading-call 3.4s ease-in-out infinite}
#cxfa-app .cxfa-read-book[aria-disabled=true]{background:#f5f6f8;color:#526077!important;border-color:#dce1e9;box-shadow:none;cursor:default;font-size:16px}
#cxfa-app .cxfa-showcase-footer{display:flex;justify-content:center;align-items:center;gap:12px;margin:8px 16px 0;min-height:44px;font-size:10px;line-height:1.4;color:#526077}
#cxfa-app .cxfa-showcase-footer>span{flex:1;min-width:0;text-align:left}
#cxfa-app #cxfa-motion-toggle{flex:0 0 auto;min-height:44px;min-width:52px;padding:8px 10px;border:1px solid #dce1e9;border-radius:7px;background:#fff;color:#526077;font:600 12px/1.3 Inter,system-ui,sans-serif;cursor:pointer}
#cxfa-app .cxfa-cover-sketch,#cxfa-app .cxfa-cover-cast,#cxfa-app .cxfa-case-sketch,#cxfa-app .cxfa-page-cast{opacity:1;transition:opacity .7s ease}
#cxfa-app .cxfa-showcase[data-cover-ready=true] .cxfa-cover-sketch,#cxfa-app .cxfa-showcase[data-cover-ready=true] .cxfa-cover-cast,#cxfa-app .cxfa-showcase[data-page-ready=true] .cxfa-case-sketch,#cxfa-app .cxfa-showcase[data-page-ready=true] .cxfa-page-cast{opacity:0;pointer-events:none}
/* A confirmed final cover never falls back to demo artwork while its GET waits,
   fails or is manually retried. Keep the native image and its identity stable. */
#cxfa-app .cxfa-showcase[data-cover-available=true] .cxfa-cover-sketch{visibility:hidden;opacity:0;transition:none;pointer-events:none}
#cxfa-app #cxfa-mini-cover:not([hidden]){animation:none;opacity:1}
/* The public mockup has exactly one cover surface at a time. Image decoding,
   retries and stale preview callbacks never reveal the animated demo below. */
#cxfa-app .cxfa-showcase[data-cover-display]:not([data-cover-display=sketch]) :is(.cxfa-cover-sketch,.cxfa-cover-cast){visibility:hidden!important;opacity:0!important;transition:none!important;pointer-events:none}
#cxfa-app .cxfa-showcase[data-cover-display]:not([data-cover-display=temporary]) :is(#cxfa-temporary-cover,#cxfa-temporary-brand){display:none!important}
#cxfa-app .cxfa-showcase[data-cover-display]:not([data-cover-display=final]) #cxfa-mini-cover{display:none!important}
#cxfa-app .cxfa-showcase[data-cover-display] :is(.cxfa-book-cover>img,.cxfa-book-page>img){animation:none!important;opacity:1;transition:none!important}
#cxfa-app .cxfa-showcase[data-page-available=true] :is(.cxfa-case-sketch,.cxfa-page-cast){visibility:hidden!important;opacity:0!important;transition:none!important;pointer-events:none}
#cxfa-app .cxfa-showcase[data-motion=paused],#cxfa-app .cxfa-showcase[data-motion=paused] *,#cxfa-app .cxfa-showcase[data-motion=paused]::before,#cxfa-app .cxfa-showcase[data-motion=paused]::after,#cxfa-app .cxfa-showcase[data-motion=paused] *::before,#cxfa-app .cxfa-showcase[data-motion=paused] *::after{animation-play-state:paused!important}
#cxfa-app .cxfa-showcase[data-motion=paused] .cxfa-book-cover>img,#cxfa-app .cxfa-showcase[data-motion=paused] .cxfa-book-page>img{animation:none!important;opacity:1}
#cxfa-app .cxfa-showcase[data-motion=paused] .cxfa-sketch-layer{transition:none!important}
#cxfa-app .cxfa-showcase~.cxfa-reader-caption{font-size:11px;color:#526077;text-align:center;margin:10px 0 0}
@keyframes cxfa-table-light{from{opacity:.5}to{opacity:.8}}
@keyframes cxfa-table-sparks{from{opacity:.35;transform:translateY(5px)}to{opacity:.72;transform:translateY(-5px)}}
@keyframes cxfa-reading-call{0%,100%{box-shadow:0 0 0 0 #e6005920}50%{box-shadow:0 0 0 5px #e6005912}}
@keyframes cxfa-pencil-draw{0%,8%{stroke-dashoffset:2400;opacity:.2}72%,100%{stroke-dashoffset:0;opacity:.8}}
@keyframes cxfa-case-ink{0%{opacity:.3;filter:blur(.4px)}100%{opacity:1;filter:blur(0)}}
@keyframes cxfa-cast-arrive{0%,10%{opacity:0;transform:translate(-55px,-65px) rotate(-20deg) scale(.6)}30%,88%{opacity:1;transform:translate(0,0) rotate(var(--cxfa-token-angle,-8deg)) scale(1)}100%{opacity:.3;transform:translate(0,0) rotate(var(--cxfa-token-angle,-8deg)) scale(.98)}}
@keyframes cxfa-loading-ink{to{background-position:-200% 0}}
@keyframes cxfa-media-reveal{from{opacity:0}to{opacity:1}}
@keyframes cxfa-loader-spin{to{transform:rotate(360deg)}}
@keyframes cxfa-patience-ink{from{opacity:.5;transform:scaleX(.75)}to{opacity:.8;transform:scaleX(1)}}
@keyframes cxfa-chronicle-bounce-a{0%{transform:translateY(7px) scale(.97)}48%{transform:translateY(-3px) scale(1.015)}74%{transform:translateY(1px) scale(.997)}100%{transform:none}}
@keyframes cxfa-chronicle-bounce-b{0%{transform:translateY(7px) scale(.97)}48%{transform:translateY(-3px) scale(1.015)}74%{transform:translateY(1px) scale(.997)}100%{transform:none}}
@keyframes cxfa-chronicle-wiggle-a{0%,100%{transform:rotate(0)}25%{transform:rotate(-13deg)}58%{transform:rotate(11deg)}80%{transform:rotate(-4deg)}}
@keyframes cxfa-chronicle-wiggle-b{0%,100%{transform:rotate(0)}25%{transform:rotate(-13deg)}58%{transform:rotate(11deg)}80%{transform:rotate(-4deg)}}
/* Preserve the existing private page flow correction, independent from native reader pages. */
#cxfa-app{padding-top:calc(var(--cxfa-top-space,88px) - var(--cxfa-flow-offset,0px) + 8px)}
body:has(#cxfa-app){overflow-x:clip}
@media(min-width:761px){
 #cxfa-app .cxfa-book-stage{height:clamp(260px,calc(var(--cxfa-mini-space,535px) - 174px),380px)}
}
@media(min-width:761px) and (max-height:800px){
 #cxfa-app .cxfa-preview-pane{position:relative;top:auto}
}
@media(max-width:760px){
 #cxfa-app .cxfa-showcase-scene{padding:16px 6px 10px;background-position:50% 56%}
 #cxfa-app .cxfa-book-stage{width:min(92%,360px);height:clamp(292px,84vw,336px);margin-top:24px;margin-bottom:4px}
 #cxfa-app .cxfa-book-object{left:45%;transform:translateX(-50%) rotateZ(-1deg) rotateY(-2deg)}
 #cxfa-app .cxfa-book-page{left:13%;right:-20%;transform:translateZ(0) rotateY(6deg) rotateZ(2deg)}
 #cxfa-app .cxfa-book-cover{transform:translateZ(8px) rotateY(-1deg)}
 #cxfa-app .cxfa-sketch-title{font-size:clamp(16px,4.4vw,20px)}
 #cxfa-app .cxfa-showcase-kicker{top:10px;left:12px;font-size:10px}
 #cxfa-app .cxfa-book-caption{max-width:94%;font-size:12px}
 #cxfa-app .cxfa-book-loader{width:94%;padding:11px 12px}
 #cxfa-app .cxfa-read-book{width:calc(100% - 24px);min-height:56px;font-size:19px}
 #cxfa-app .cxfa-showcase-footer{margin-left:12px;margin-right:12px}
}
@media(prefers-reduced-motion:reduce){
 #cxfa-app .cxfa-showcase,#cxfa-app .cxfa-showcase *,#cxfa-app .cxfa-showcase::before,#cxfa-app .cxfa-showcase::after,#cxfa-app .cxfa-showcase *::before,#cxfa-app .cxfa-showcase *::after{animation:none!important;transition:none!important}
 #cxfa-app .cxfa-pencil-art path{stroke-dashoffset:0;opacity:.7}
 #cxfa-app .cxfa-cast-token{opacity:1}
 #cxfa-app .cxfa-book-cover>img,#cxfa-app .cxfa-book-page>img{opacity:1}
}
/* Full-room entry composition; the shared Studio finalizer keeps its own layout.
   The book floor and size are independent of image, loading and ready states. */
@media(min-width:1100px){
 #cxfa-app.cxfa-immersive-entry .cxfa-showcase{height:100%;overflow:visible;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}
 #cxfa-app.cxfa-immersive-entry .cxfa-showcase-scene{position:absolute;inset:0;overflow:visible;padding:0;border-radius:0;background:none}
 #cxfa-app.cxfa-immersive-entry .cxfa-showcase-kicker{display:none}
 #cxfa-app.cxfa-immersive-entry .cxfa-showcase-halo{top:auto;bottom:105px;width:min(95%,550px);height:70%;max-height:550px;transform:translateX(-50%);opacity:.85}
 #cxfa-app.cxfa-immersive-entry .cxfa-book-stage{position:absolute;right:0;bottom:124px;left:0;width:min(100%,600px);height:var(--cxfa-book-height);min-height:150px;margin:0 auto}
 #cxfa-app.cxfa-immersive-entry .cxfa-book-object{left:50%;transform:translateX(-59%) rotateZ(-1.2deg) rotateY(-3deg)}
 /* Query only the book stage, so fixed loading panels retain the viewport as
    their containing block. Large screens gain a larger book; a narrow central
    column limits the actual book to its own available width. */
 @supports (container-type:inline-size) and (height:1cqw){
  #cxfa-app.cxfa-immersive-entry .cxfa-book-stage{container-type:inline-size}
  #cxfa-app.cxfa-immersive-entry .cxfa-book-object{top:auto;height:min(calc(100% - 12px),calc(120cqw - 48px))}
 }

 #cxfa-app.cxfa-immersive-entry .cxfa-book-stage::after{right:auto;bottom:0;left:50%;width:85%;max-width:420px;height:25px;transform:translateX(-50%);filter:blur(8px)}
 #cxfa-app.cxfa-immersive-entry .cxfa-book-cover{box-shadow:inset 8px 0 10px #5546331a,3px 0 0 #473e5f,12px 18px 32px #17203370}
 #cxfa-app.cxfa-immersive-entry .cxfa-book-caption{position:absolute;right:0;bottom:35px;left:0;width:fit-content;max-width:94%;margin:0 auto;background:#fffffff2;border-color:#ffffffb3}
 #cxfa-app.cxfa-immersive-entry .cxfa-showcase:has(.cxfa-temporary-note:not([hidden])) .cxfa-book-caption{bottom:70px}
 #cxfa-app.cxfa-immersive-entry .cxfa-temporary-note{position:absolute;right:0;bottom:8px;left:0;width:94%;max-width:420px;min-height:46px;margin:0 auto;padding:8px 12px;background:#fffffff5;border-color:#e1d8dc}
 #cxfa-app.cxfa-immersive-entry .cxfa-showcase-footer{position:absolute;top:0;right:0;max-width:460px;min-height:44px;margin:0;padding:0;border-radius:8px;background:transparent;color:#384458}
 #cxfa-app.cxfa-immersive-entry .cxfa-showcase-footer>span{display:none}
 #cxfa-app.cxfa-immersive-entry .cxfa-showcase~.cxfa-reader-caption{display:none}
 #cxfa-app.cxfa-immersive-entry .cxfa-read-book{position:absolute;right:0;bottom:0;left:0;width:96%;max-width:405px;margin:0 auto}
 #cxfa-app.cxfa-immersive-entry .cxfa-read-book[aria-disabled=true]{display:none}
 #cxfa-app.cxfa-immersive-entry .cxfa-book-loader,#cxfa-app.cxfa-immersive-entry .cxfa-patience-card{width:94%;max-width:460px}
 /* The loader occupies the vacant left panel while its own content can scroll.
    Neither it nor the eventual packs affect the central book geometry. */
 #cxfa-app.cxfa-immersive-entry[data-step="4"] .cxfa-showcase:not([data-read-ready=true]) .cxfa-waiting-rail{position:fixed;z-index:20;top:calc(var(--cxfa-top-space,88px) + 28px);left:var(--cxfa-atelier-left);display:flex;flex-direction:column;gap:12px;width:var(--cxfa-atelier-rail);max-height:calc(100dvh - var(--cxfa-top-space,88px) - var(--cxfa-nav-space,112px) - 18px);overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding:4px 4px 12px;scroll-padding:12px}
 #cxfa-app.cxfa-immersive-entry[data-step="4"] .cxfa-showcase:not([data-read-ready=true]) .cxfa-waiting-rail{--cxfa-reading-extra:clamp(0px,calc((100vw - 1100px) * .08),64px);left:calc(var(--cxfa-atelier-left) - var(--cxfa-reading-extra));width:calc(var(--cxfa-atelier-rail) + var(--cxfa-reading-extra))}
 #cxfa-app.cxfa-immersive-entry[data-step="4"] .cxfa-showcase:not([data-read-ready=true]) .cxfa-waiting-rail>:is(.cxfa-book-loader,.cxfa-patience-card){flex:0 0 auto;width:100%;max-width:none;margin:0}
 #cxfa-app.cxfa-immersive-entry .cxfa-showcase[data-read-ready=true] .cxfa-book-caption{display:none}
 #cxfa-app.cxfa-immersive-entry .cxfa-showcase[data-read-ready=true] .cxfa-waiting-rail{position:absolute;right:0;bottom:68px;left:0;display:block;width:96%;max-width:330px;margin:0 auto}
 #cxfa-app.cxfa-immersive-entry .cxfa-showcase[data-read-ready=true] .cxfa-book-loader{width:100%;max-width:none;margin:0;padding:6px 10px;border-top-width:2px;box-shadow:0 5px 20px #1720331a}
 #cxfa-app.cxfa-immersive-entry .cxfa-showcase[data-read-ready=true] .cxfa-loader-heading{margin-bottom:4px}
 #cxfa-app.cxfa-immersive-entry .cxfa-showcase[data-read-ready=true] #cxfa-loader-phase{font-size:11px}
 #cxfa-app.cxfa-immersive-entry .cxfa-showcase[data-read-ready=true] #cxfa-progress-percent{font-size:17px}
 #cxfa-app.cxfa-immersive-entry .cxfa-showcase[data-read-ready=true] .cxfa-progress-indicator{margin:0}
 #cxfa-app.cxfa-immersive-entry .cxfa-showcase[data-read-ready=true] .cxfa-progress-meter{height:6px}
 #cxfa-app.cxfa-immersive-entry .cxfa-showcase[data-read-ready=true] #cxfa-progress-estimate,#cxfa-app.cxfa-immersive-entry .cxfa-showcase[data-read-ready=true] .cxfa-book-loader .cxfa-progress{display:none}
 #cxfa-app.cxfa-immersive-entry .cxfa-showcase[data-read-ready=true] .cxfa-book-loader::after{display:none}
}

/* The real native reading link is enabled by the entry only after both media loads. */
#cxfa-app .cxfa-book-open{position:absolute;z-index:20;inset:0 -22% 0 0;display:block;transform:translateZ(40px);border-radius:4px 10px 10px 4px;cursor:pointer}
#cxfa-app .cxfa-book-open[aria-disabled=true]{pointer-events:none;cursor:default;opacity:1}
#cxfa-app .cxfa-book-object{transition:scale .24s ease;transform-origin:50% 100%}
#cxfa-app .cxfa-showcase[data-read-ready=true] .cxfa-book-object:focus-within{scale:1.018}
@media(hover:hover) and (pointer:fine){#cxfa-app .cxfa-showcase[data-read-ready=true] .cxfa-book-object:hover{scale:1.018}}
@media(prefers-reduced-motion:reduce){#cxfa-app .cxfa-book-object{transition:none!important;scale:1!important}}
#cxfa-app .cxfa-showcase[data-motion=paused] .cxfa-book-object{scale:1;transition:none}
