/* One viewport: a camera travels between the book and its reading table. */
.app-shell[data-stage="draw"],.app-shell[data-stage="spread"],.app-shell[data-stage="reading"]{height:100dvh;min-height:0;overflow:hidden}
.app-shell[data-stage="draw"] .topbar,.app-shell[data-stage="spread"] .topbar,.app-shell[data-stage="reading"] .topbar{height:56px;padding-top:8px}
.app-shell[data-stage="draw"] .chapter-rail,.app-shell[data-stage="spread"] .chapter-rail,.app-shell[data-stage="reading"] .chapter-rail{height:30px;padding-top:3px;padding-bottom:8px;align-items:center}
.table-screen{position:relative;z-index:1;display:flex;flex-direction:column;gap:10px;height:calc(100dvh - 166px - env(safe-area-inset-bottom));min-height:0;margin:0;padding:8px 18px 10px;overflow:hidden}
.desk-heading{display:flex;flex:none;align-items:center;justify-content:space-between;gap:10px;min-height:43px;padding-top:2px}
.desk-heading .overline{font-size:8px;letter-spacing:.16em;color:#cba96f}.desk-heading h1{font-size:17px;line-height:1.5;margin:5px 0 0;letter-spacing:-.055em;color:#f4e6cd;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.desk-heading>div{min-width:0}
.text-link{flex:none;border:0;background:transparent;color:#c7b795;font:10px system-ui,sans-serif;padding:10px 0 10px 6px}
.desk-book-lip{position:absolute;top:-30px;left:14%;right:14%;height:31px;display:flex;filter:drop-shadow(0 4px 3px #0006);pointer-events:none}.desk-book-lip span{width:50%;border-bottom:4px double #b59c70;background:#e5d6b4;transform:skewY(3deg)}.desk-book-lip span+span{transform:skewY(-3deg)}
.gathering-area{flex:none;padding:10px 10px 7px;border:1px solid #c4a66f44;border-radius:7px;background:linear-gradient(110deg,#1c2e46,#15253f);box-shadow:inset 0 1px 0 #e2c07b14}
.gathering-title{display:flex;align-items:center;justify-content:space-between;gap:8px;color:#e5d2ae;font-size:10px}.gathering-title>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gathering-title strong{flex:none;font:600 15px Georgia,serif;color:#f2d39b}.gathering-title small{font-size:10px;color:#b3a68e}
.gathered-cards{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:4px;margin-top:9px}
.gathered-slot{position:relative;height:51px;min-width:0;padding:0;border:1px dashed #c0a77566;border-radius:3px;background:#0f1d32;display:grid;place-items:center;color:#a08558}.gathered-slot.empty span{font-size:12px;opacity:.6}.gathered-slot.filled{border-style:solid;border-color:#d9bf8c;box-shadow:0 2px 5px #0006}.gathered-slot img{display:block;width:100%;height:100%;object-fit:fill;border-radius:2px}.gathered-slot.filled>span{position:absolute;top:-5px;right:-3px;width:12px;height:12px;border-radius:50%;background:#ecdcbd;color:#51432f;font:11px/12px system-ui;text-align:center}
.gathering-area>p{margin:8px 0 0;font:9px/1.4 system-ui,sans-serif;color:#a5b0bf;text-align:center}
.scatter-table{position:relative;flex:1;min-height:0;border:1px solid #b7956255;border-radius:9px;background:radial-gradient(ellipse at 50% 45%,#304158,#172a42 64%,#12223a);box-shadow:inset 0 0 0 4px #152840,inset 0 0 0 5px #b7976126,0 8px 20px #0002;overflow:hidden;isolation:isolate}
.scatter-table:before{content:"✧";position:absolute;inset:20% 0 auto;text-align:center;font:220px Georgia,serif;color:#c9ac6420;pointer-events:none}
.scatter-legend{position:absolute;top:10px;left:12px;right:12px;display:flex;justify-content:space-between;font:9px system-ui,sans-serif;color:#c4b699}
.scattered-deck{position:absolute;inset:31px 11px 13px;touch-action:manipulation}
.scatter-card{position:absolute;left:var(--sx);top:var(--sy);width:clamp(24px,7.8vw,33px);aspect-ratio:0.583;transform:translate(-50%,-50%) rotate(var(--turn));transform-origin:center;padding:0;border:0;border-radius:3px;background:none;box-shadow:0 3px 5px #0008;cursor:pointer;transition:filter .15s,transform .15s}
.scatter-card img{display:block;width:100%;height:100%;border-radius:3px}.scatter-card.chosen,.scatter-card.lifting{visibility:hidden;pointer-events:none}.scatter-card:hover:not(:disabled),.scatter-card:focus-visible{z-index:9;transform:translate(-50%,-53%) rotate(0) scale(1.12);filter:brightness(1.16)}.scatter-card:disabled:not(.chosen){filter:saturate(.65);cursor:default}
.desk-hint{flex:none;text-align:center;color:#c0b598;font:10px/1.4 system-ui,sans-serif;margin:0;min-height:14px}
.flying-card{position:fixed;z-index:100;pointer-events:none;object-fit:fill;border-radius:3px;box-shadow:0 9px 16px #0005;transform-origin:top left}
.just-gathered{animation:gather-glow .4s ease-out}@keyframes gather-glow{from{filter:brightness(1.8);transform:translateY(-3px)}to{filter:brightness(1);transform:translateY(0)}}
.scene-travelling{position:relative;height:100dvh!important;overflow:hidden!important}.scene-layer{position:absolute;inset:0;width:100%;height:100dvh;background:#101c35;overflow:hidden;backface-visibility:hidden}.scene-layer .bottom-bar{position:absolute;width:100%;left:0;transform:none}
.bound-volume{position:relative;flex:1;min-height:0;margin:1px 3px 3px 1px;padding:7px 8px 8px 13px;border:1px solid #b08b50;border-radius:5px 12px 12px 5px;background:linear-gradient(90deg,#08172e 0 8px,#23435e 9px,#12243e 17px);box-shadow:3px 5px 0 #b8a785,5px 8px 0 #e6d8b9,8px 11px 0 #13243c,0 16px 23px #0005;isolation:isolate}
.bound-volume:before{content:"";position:absolute;top:9px;bottom:9px;left:5px;width:4px;border-top:2px solid #a38350;border-bottom:2px solid #a38350;background:linear-gradient(90deg,#c3a56b55,transparent);pointer-events:none}
.volume-leaf{position:relative;display:flex;flex-direction:column;gap:9px;height:100%;min-height:0;padding:13px 12px 9px 17px;color:#3b4350;background:radial-gradient(ellipse at 80% 12%,#fff8e5,#f0e3c4 85%);border-radius:2px 6px 6px 2px;border:1px solid #c7b28d;box-shadow:inset 10px 0 12px -7px #7a62496b}
.volume-running-head{display:flex;justify-content:space-between;align-items:center;flex:none;font:8px Georgia,serif;letter-spacing:.1em;color:#967444;border-bottom:1px solid #bda47966;padding-bottom:7px}
.topic-token{position:relative;flex:none;max-height:85px;min-height:55px;padding:8px 27px 8px 10px;border:1px solid #bfa477;border-radius:2px;background:#faf0d9;box-shadow:0 2px 4px #765a2921;text-align:left;overflow:hidden}.topic-token>span{font:7px Georgia,serif;letter-spacing:.15em;color:#a07b47;display:block;margin-bottom:3px}.topic-token strong{font-size:12px;font-weight:600;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#53432f}.topic-token p{font-size:9px;line-height:1.5;margin:4px 0 0;color:#8a795d;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}.topic-token i{position:absolute;right:8px;top:50%;font-size:16px;font-style:normal;color:#aa874d}
.spread-on-paper{position:relative;flex:1;min-height:0;border-top:1px solid #d2bb93;border-bottom:1px solid #d2bb93;background:radial-gradient(circle at 38% 43%,transparent 0 62px,#b89b6226 63px,transparent 64px)}
.spread-on-paper .spread-board{background:none}.spread-on-paper .spread-card{width:clamp(30px,9vw,37px);height:auto;aspect-ratio:.583;filter:drop-shadow(0 3px 3px #573c2544)}.spread-on-paper .spread-card img{height:100%;border-radius:2px}.awaiting-cards .spread-card{opacity:0}
.volume-caption{flex:none;font-size:9px;text-align:center;color:#958161;margin:0;line-height:1.4}.volume-folio{display:flex;justify-content:space-between;flex:none;color:#a08a67;font-size:8px;line-height:1.4}.volume-folio b{font:10px Georgia,serif}
.volume-nav{display:flex;justify-content:space-between;align-items:center;flex:none;height:32px;margin-top:6px}.volume-nav button{border:0;background:none;color:#dcc398;font-size:10px;padding:8px 0;min-width:75px}.volume-nav button:first-child{text-align:left}.volume-nav button:last-child{text-align:right}.volume-nav button:disabled{opacity:.3}.volume-nav>span{font:10px Georgia,serif;color:#aa997e}
.reading-scene .reader-frame{margin-top:1px;perspective:1200px}.reading-scene .reader-page{height:100%}.reading-scene .reader-leaf{height:100%;min-height:0;padding:14px 13px 12px;border-radius:2px 6px 6px 2px;box-shadow:inset 9px 0 12px -8px #947753;background:#f7ecd4;overflow:hidden}.reading-scene .leaf-top{font-size:8px;letter-spacing:.06em}.reading-scene .leaf-bottom{font-size:8px}.reading-scene .prologue{min-height:0;flex:1}.reading-scene .prologue h2{font-size:16px;margin:12px 0}.reading-scene .prologue blockquote{font-size:12px;line-height:1.75;margin:0;padding:12px 8px}.reading-scene .prologue p{font-size:10px;line-height:1.7;margin-top:15px}.reading-scene .reading-card{margin-top:14px;gap:12px}.reading-scene .reading-card img{width:72px;height:123px}.reading-scene .reading-card h2{font-size:18px}.reading-scene .placeholder-reading{padding:15px 8px;margin:18px 0 12px}.reading-scene .position-description{font-size:10px;line-height:1.6}.reading-scene .page-dots{margin:0;flex:none;min-height:12px;align-items:center;gap:11px}.reading-scene .page-dots button{background:#5c6470}.reading-scene .page-dots button.active{background:#e4be7b}
@media(max-height:740px){.table-screen{gap:7px;padding-top:3px;padding-bottom:6px}.desk-heading{min-height:35px}.desk-heading h1{font-size:15px}.gathering-area{padding-top:7px}.gathered-slot{height:44px}.scatter-card{width:26px}.topic-token{max-height:62px;padding-top:5px;padding-bottom:5px}.topic-token p{-webkit-line-clamp:1}.spread-on-paper .spread-card{width:29px}.volume-leaf{gap:6px;padding-top:9px}.reading-scene .reading-card img{width:54px;height:92px}.reading-scene .placeholder-reading{margin-top:12px;padding:10px 5px}.reading-scene .position-description{font-size:9px}.reading-scene .prologue p{margin-top:10px}.reading-scene .prologue blockquote{font-size:11px;line-height:1.5}}
@media(prefers-reduced-motion:reduce){.scatter-card,.book-arrow{transition:none}.just-gathered{animation:none}}
.flying-card{transform-origin:center}
.turning-book-out{z-index:2;background:transparent;visibility:hidden;pointer-events:none}
.turning-book-out .volume-leaf,.turning-book-out .reader-page{visibility:visible}
.reading-scene .reader-leaf{color:#544633}
.reading-scene .prologue h2{overflow-wrap:anywhere}
.reading-scene .prologue blockquote{white-space:normal}
.reading-scene .prologue h2,.reading-scene .reading-card h2,.reading-scene .placeholder-reading h3{color:#544633}

/* One persistent 3D book; the DOM is only its settled, accessible page. */
.table-book-view{position:absolute;inset:0;z-index:0;pointer-events:none;width:100%;height:100dvh}
.table-book-view canvas{display:block;width:100%;height:100%}
.table-book-view>.story-card{visibility:hidden!important;pointer-events:none}
.app-shell[data-stage="draw"] .topbar,.app-shell[data-stage="draw"] .chapter-rail{background:#101c35dc}
.draw-scene .desk-heading{margin-top:18px}
.scatter-table{border:0;background:none;box-shadow:none;overflow:visible}
.scatter-table:before{font-size:200px;color:#c9ac6412}
.gathering-area{border:0;border-top:1px solid #c4a66f44;border-bottom:1px solid #c4a66f33;border-radius:0;background:#14243e80;box-shadow:none}
.spread-scene,.reading-scene{position:static}
.spread-scene .bound-volume,.reading-scene .bound-volume{position:absolute;flex:none;margin:0;padding:0;border:0;border-radius:0;background:none;box-shadow:none;z-index:1}
.bound-volume:before{display:none}
.spread-scene .volume-leaf,.reading-scene .reader-leaf{border:1px solid #ac8756;border-radius:0;background:#faf0d9;box-shadow:inset 0 0 0 4px #f4e5c8}
.spread-scene .volume-nav,.reading-scene .volume-nav{position:absolute;left:22px;right:22px;bottom:103px}
.reading-scene .page-dots{position:absolute;bottom:88px;left:0;right:0}
.world-descending .draw-scene,.world-descending>.bottom-bar{visibility:hidden}
.world-page-moving .bound-volume{visibility:hidden}
.world-page-moving .bound-volume *{visibility:hidden}
.world-page-moving .volume-nav,.world-page-moving .page-dots,.world-page-moving>.bottom-bar{visibility:hidden}
.spread-scene>.desk-heading,.reading-scene>.desk-heading{position:relative;z-index:2;justify-content:center;min-height:20px;padding:0;margin:0;text-align:center}
.spread-scene>.desk-heading h1,.reading-scene>.desk-heading h1{display:none}
.spread-scene>.desk-heading,.reading-scene>.desk-heading{visibility:hidden}
.spread-scene .volume-nav,.reading-scene .volume-nav{z-index:2}
.spread-on-paper .spread-card{width:28px}
.spread-scene .volume-leaf{padding:10px 9px 8px;gap:7px}
.reading-scene .reader-leaf{padding:12px 10px 10px}
.reading-scene .prologue h2{font-size:14px;margin:8px 0}
.reading-scene .prologue blockquote{font-size:11px;line-height:1.6;padding:9px 4px}
.reading-scene .prologue p{font-size:9px;margin-top:10px}
.reading-scene .prologue.compact .big-ornament{font-size:22px}
.reading-scene .prologue.compact h2{font-size:12px;line-height:1.5;margin:7px 0}
.reading-scene .prologue.compact blockquote{font-size:10.5px;line-height:1.5;padding:7px 2px}
.reading-scene .prologue.compact p{font-size:8px;margin-top:7px}
@media(max-height:740px){.draw-scene .desk-heading{margin-top:7px}}

/* Fixed numbered places: removing a card never compacts the reading order. */
.gathered-cards{gap:3px;margin-top:14px;margin-bottom:20px}
.gathered-slot{height:54px}
.gathered-card{position:absolute;inset:0;width:100%;height:100%;display:grid;place-items:center;background:none;border:0;padding:0;color:#b69a66;border-radius:2px}
.gathered-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:fill}
.slot-number{position:absolute;top:100%;left:0;right:0;margin-top:5px;font:10px/1 Georgia,serif;color:#d0bc98;text-align:center;pointer-events:none}
.slot-remove{position:absolute;right:-5px;top:-9px;z-index:2;width:19px;height:19px;padding:0;border:0;border-radius:50%;background:#253651;color:#e8d2af;font:15px/19px system-ui;box-shadow:0 1px 3px #0008}
.slot-active{outline:2px solid #f1cc86;outline-offset:2px;box-shadow:0 0 12px #f1cc8655!important}
.slot-active .slot-number{color:#ffe4ac;font-weight:700}
.gathering-area>p{min-height:13px;margin-top:9px}
/* Four overlapping fans keep all 78 cards within one portrait viewport. */
.scattered-deck{inset:52px 5px 35px}
.scatter-card{width:54px;height:92.6px;aspect-ratio:auto;z-index:calc(1 + var(--fan));box-shadow:0 2px 4px #0009}
.scatter-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:fill}
.scatter-card:hover:not(:disabled),.scatter-card:focus-visible{z-index:20;transform:translate(-50%,-57%) rotate(var(--turn)) scale(1.08)}
.scatter-card:disabled:not(.chosen){filter:none}
/* Explicit dimensions prevent wider source artwork changing the card box. */
.spread-on-paper .spread-card{width:28px;height:48px;aspect-ratio:auto}
.spread-on-paper .spread-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:fill}
.reading-card img,.detail-body img{flex-shrink:0}
@media(max-height:740px){.scatter-card{width:48px;height:82.3px}.gathered-slot{height:48px}.scattered-deck{inset:43px 5px 30px}}
.gathered-cards{margin-bottom:31px}
.gathered-slot{height:auto;aspect-ratio:7/12;border:0;outline:1px dashed #c0a77566}
.gathered-slot.filled{border:0;outline:1px solid #d9bf8c}
.gathered-slot.slot-active{outline:2px solid #f1cc86;outline-offset:2px}
.slot-number{pointer-events:auto;top:100%;width:100%;height:28px;margin-top:2px;padding:0;border:0;border-bottom:1px solid #c0a77555;border-radius:3px;background:transparent;color:#d0bc98;font:12px/28px Georgia,serif;cursor:pointer}
.slot-active .slot-number{background:#ebcb8c;color:#26344b;border-color:#ebcb8c;font-weight:700}
.slot-number:focus-visible{outline:2px solid #ffe4ac;outline-offset:1px}
.scatter-card{height:92.5714px}
@media(max-height:740px){.scatter-card{height:82.2857px}}
.slot-number{pointer-events:none;border:0;background:none;cursor:default}
button.gathered-card{touch-action:none;cursor:grab;user-select:none;-webkit-user-select:none}
.gathered-card img{-webkit-user-drag:none;pointer-events:none}
.slot-dragging,.slot-dragging button.gathered-card{cursor:grabbing;user-select:none}
.slot-drop-target{outline:2px solid #f1cc86!important;outline-offset:2px;background:#e8c98a22;box-shadow:0 0 12px #f1cc8644}
.slot-drop-target .slot-number{color:#ffe4ac;font-weight:700}
.card-drag-ghost{box-shadow:0 6px 15px #0008;will-change:transform}
.gathered-slot.filled>.slot-number{top:100%;left:0;right:0;width:100%;height:28px;margin-top:2px;border:0;border-radius:0;background:none;color:#d0bc98;font:12px/28px Georgia,serif;pointer-events:none}

/* Two quiet rows leave the rest of the table to the deck. */
.draw-scene{gap:8px;padding-bottom:0}
.draw-scene .desk-heading{min-height:28px;margin-top:15px;padding-top:0}
.draw-scene .desk-heading h1{font-size:16px;line-height:1.4;margin:0}
.draw-scene .text-link{padding:7px 0 7px 6px}
.draw-scene .gathering-area{padding:8px 0 10px;border:0;background:none}
.draw-scene .gathered-cards{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px 6px;margin:0}
.draw-scene .gathered-slot{width:100%;max-width:64px;height:auto;aspect-ratio:7/12;justify-self:center;border-radius:3px}
.draw-scene .gathered-slot.empty{outline:1px solid #c0a77533;background:#0f1d3244}
.draw-scene .scattered-deck{inset:32px 5px 35px}
.draw-scene .scatter-table:before{display:none}
.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;min-height:0!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip-path:inset(50%);white-space:nowrap;border:0!important}
@media(max-height:740px){.draw-scene .gathered-slot{max-width:58px}.draw-scene .desk-heading{margin-top:7px}.draw-scene .gathered-cards{row-gap:8px}.draw-scene .scattered-deck{inset:26px 5px 28px}}
.table-screen{height:calc(100dvh - 136px - env(safe-area-inset-bottom))}

/* Printed directly on both physical leaves. DOM panels only provide hit targets. */
.spread-scene .book-spread,.reading-scene .book-spread{position:absolute;inset:0;width:100%;height:100%;padding:0;pointer-events:none;background:none;border:0;box-shadow:none}
.paper-content{position:absolute;display:flex;flex-direction:column;gap:8px;width:132px;height:210px;padding:0;border:0;background:transparent;box-shadow:none;color:#4a3a28;pointer-events:auto;font:10px/1.6 "Noto Serif KR",serif;overflow:hidden}
.paper-printed .paper-content{opacity:0}
.paper-content:focus-within{outline:1px solid #a8834d}
.paper-heading{flex:none;color:#806237;font:7px/1.5 Georgia,serif;letter-spacing:.1em;text-align:center;border-bottom:1px solid #a0834a55;padding-bottom:5px}
.paper-folio{flex:none;margin-top:auto;padding-top:5px;border-top:1px solid #a0834a44;font:7px/1.5 Georgia,serif;color:#806237;text-align:center}
.paper-content .spread-on-paper{border:0;background:none;min-height:0}
.paper-content .spread-card{width:27px;height:46.2857px;filter:none}
.paper-content .spread-card:hover,.paper-content .spread-card:focus-visible{transform:translate(-50%,-50%)}
.paper-content .spread-card-2:hover,.paper-content .spread-card-2:focus-visible{transform:translate(-50%,-50%) rotate(90deg)}
.spread-question{position:absolute;left:0;top:10%;width:60%;text-align:center;overflow-wrap:anywhere}
.spread-question>span{color:#8d713f;font-size:9px}
.spread-question h2{font-size:12px;line-height:1.7;margin:10px 0;font-weight:600}
.spread-question p{font-size:8px;line-height:1.8;display:-webkit-box;-webkit-line-clamp:7;-webkit-box-orient:vertical;overflow:hidden}
.reading-art{align-items:center;text-align:center}
.reading-art .paper-heading,.reading-art .paper-folio{width:100%}
.book-card-art{display:block;flex:none;width:62px;height:106.2857px;object-fit:fill;margin:3px auto 0}
.paper-content h2{font-size:13px;line-height:1.5;margin:5px 0;overflow-wrap:anywhere}
.reading-art>p{font-size:8px;margin:0}
.reading-copy p{font-size:10px;line-height:1.75;margin:0;overflow-wrap:anywhere}
.reading-copy .book-meaning{color:#967543;font-size:9px}
.reading-copy .book-position{font-size:8px;color:#78644b}
.reading-copy blockquote{margin:auto 0;font-size:10px;line-height:1.75;overflow-wrap:anywhere;white-space:pre-wrap}
.reading-copy.compact blockquote{font-size:8px;line-height:1.55}
.reading-copy .book-invitation{font-size:8px;color:#8b7551}
.book-prologue-title{margin:auto 0}
.book-prologue-title>span{font-size:25px;color:#a58247}
.book-prologue-title h2{font-size:13px;margin:12px 0}
.book-prologue-title p{font-size:9px;line-height:1.9;color:#8b7551}
.spread-scene .volume-nav,.reading-scene .volume-nav{top:calc(50dvh + 115px);bottom:auto}
.reading-scene .page-dots{top:calc(50dvh + 168px);bottom:auto}
.paper-content{gap:6px;color:#392819}
.book-card-art{width:53px;height:90.8571px}
.reading-art h2{font-size:11px;line-height:1.35;margin:2px 0}
.paper-heading,.paper-folio{color:#624925}
.reading-copy h2{font-size:12px}
.reading-copy .book-position{font-size:8px;line-height:1.5}
.reading-copy>*{flex-shrink:0}
.spread-question{top:4%;height:91%;overflow:hidden}
.spread-question h2{font-size:11px;line-height:1.5;margin:7px 0;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.spread-question p{-webkit-line-clamp:4;line-height:1.65}

/* Zoom follows the physical leaf; these transparent controls cover its margins. */
.paper-zoom-target{position:absolute;z-index:0;padding:0;border:0;background:transparent;pointer-events:auto;cursor:zoom-in}
.paper-zoom-target:focus-visible{outline:2px solid #d8ba7d;outline-offset:3px;border-radius:2px}
.paper-content{z-index:1;cursor:zoom-in}
.app-shell[data-paper-focus="left"] .paper-content,.app-shell[data-paper-focus="right"] .paper-content,.app-shell[data-paper-focus="left"] .paper-zoom-target,.app-shell[data-paper-focus="right"] .paper-zoom-target{cursor:zoom-out}
.app-shell[data-paper-focus="left"] .volume-nav,.app-shell[data-paper-focus="right"] .volume-nav{top:auto;bottom:108px}
.app-shell[data-paper-focus="left"] .page-dots,.app-shell[data-paper-focus="right"] .page-dots{top:auto;bottom:91px}
.paper-zoom-target[hidden],.topbar [hidden]{display:none}

/* Each selected slot is reserved immediately while its own card is in flight. */
.gathered-slot.arriving .gathered-card img{visibility:hidden}
.gathered-slot.arriving .slot-remove{visibility:hidden}

/* Equal-width actions sit together at the bottom of the card table. */
.app-shell[data-stage="draw"]>.bottom-bar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.app-shell[data-stage="draw"] .bottom-bar .primary-button{min-width:0;font-size:12px;padding:0 8px}
.app-shell[data-stage="draw"] .topic-edit-button{background:#14243e;border-color:#c7aa735e;color:#e1c798;box-shadow:none}

/* Deck cards are tap targets. Only the selected tray supports custom dragging. */
.scatter-card,.scatter-card img{user-select:none;-webkit-user-select:none;-webkit-user-drag:none;-webkit-touch-callout:none}
.scatter-card{touch-action:manipulation}
.scatter-card img{pointer-events:none}
.scatter-card:hover:not(:disabled),.scatter-card:focus-visible{transform:translate(-50%,-50%) rotate(var(--turn));filter:brightness(1.12)}

.spread-confirm-message{grid-column:1/-1;margin:0 0 7px;text-align:center;color:#efddbc;font-size:12px;line-height:1.85;word-break:keep-all}
