/* v55: one original body-and-tail SVG; retained native text and actions. */
#catalog-shell { position:relative; z-index:2; }
#catalog-flow { position:relative; }
#idle-safe-area { position:fixed; width:0; height:0; visibility:hidden; pointer-events:none; padding-top:env(safe-area-inset-top,0px); padding-right:env(safe-area-inset-right,0px); padding-bottom:env(safe-area-inset-bottom,0px); padding-left:env(safe-area-inset-left,0px); }
#idle-dock { position:fixed; z-index:80; left:var(--dock-left,0); top:var(--dock-top,auto); right:auto; bottom:0; width:var(--dock-size,320px); height:var(--dock-size,320px); pointer-events:none; }
#idle-dock-content { position:absolute; inset:0; pointer-events:none; }
#idle-arena { position:absolute; z-index:0; inset:0; border-radius:0 100% 0 0; overflow:hidden; isolation:isolate; background:linear-gradient(220deg,#1c2330f5,#11151ef8); box-shadow:inset -1px 1px 0 #71618e66; pointer-events:none; }
#idle-game-slot { position:absolute; left:var(--game-left,12px); top:var(--game-top,218px); width:var(--game-width,250px); height:var(--game-height,80px); pointer-events:none; }
#idle-world { position:absolute; inset:0; z-index:1; overflow:hidden; pointer-events:none; }
#idle-world canvas { display:block; width:100%; height:100%; pointer-events:none; }
.idle-fallback { display:block; width:100%; height:100%; pointer-events:none; }
body.idle-scene-ready .idle-fallback { visibility:hidden; }
#idle-status { position:absolute; z-index:5; left:var(--status-left,12px); top:var(--status-top,302px); width:var(--status-width,228px); height:var(--status-height,14px); margin:0; padding:0 2px; color:#d1c8df; font:500 12px/14px var(--yoru-font); text-align:left; overflow:visible; pointer-events:none; }
.idle-bubble { position:absolute; z-index:3; left:var(--speech-left,12px); top:var(--speech-top,82px); width:var(--speech-width,189px); height:auto;max-height:none; padding:0; margin:0; border:2px solid #292332; border-radius:25px 23px 19px 22px; background:#fff9ec; color:#292332; box-shadow:-2px 3px 0 #15121d44; overflow:visible; overflow-wrap:anywhere; pointer-events:auto; }
.idle-speech-body { height:auto;max-height:none; padding:10px; border-radius:inherit; overflow:visible; }
.idle-bubble-head { display:flex; align-items:flex-start; gap:4px; min-height:44px; }
.idle-speech-heading { flex:1; min-width:0; }
.idle-bubble-head>span { color:#5b466c; font:700 12px/1.4 var(--yoru-font); }
#idle-bubble-close { position:static; flex:0 0 44px; display:flex; align-items:center; justify-content:center; width:44px; height:44px; min-width:44px; min-height:44px; padding:0; border:0; border-radius:9px; background:#fff9ec; color:#5b466c; font:23px/1 system-ui; cursor:pointer; }
#idle-context-title { margin:0 0 7px; padding-right:0; color:#292332; font-size:14px; line-height:1.5; font-weight:600; }
#idle-bubble-reason { margin:0 0 8px; color:#534660; font-size:13px; line-height:1.5; }
.idle-bubble-actions { display:flex; flex-wrap:wrap; gap:6px; }
.idle-bubble-actions button { min-width:44px; min-height:44px; padding:7px 9px; border:1px solid #806997; border-radius:9px; background:transparent; color:#3e2f50; font:600 13px/1.4 var(--yoru-font); text-align:left; cursor:pointer; }
#idle-bubble-target { background:#463456; color:#fff9ec; border-color:#463456; }
#idle-bubble-target[aria-disabled="true"] { opacity:.65; cursor:default; }
#idle-bubble-status { margin:6px 0 0; color:#5c5065; font-size:12px; line-height:1.45; }
#idle-bubble-status:empty,#idle-bubble-reason:empty { display:none; }
#idle-speech-tail { position:absolute; z-index:4; display:block; overflow:visible; pointer-events:none; }
#idle-speech-tail[hidden] { display:none; }
#idle-speech-tail-path { stroke-linejoin:round; vector-effect:non-scaling-stroke; pointer-events:none; }
#idle-dock button:focus-visible,.idle-jump:focus-visible { outline:3px solid #b2a0ff; outline-offset:2px; }
#idle-bubble button:focus-visible { outline-color:#67439a; outline-offset:-3px; }
/* Background remains inert; minimizing removes art, speech and tray entirely. */
#idle-dock[data-minimized="true"] #idle-dock-content { display:none; }
.relation-panel,.side-shelf-info,.story-card,.group-heading { background-color:#14141d; }
.side-shelf[data-side="left"] .side-spine:hover { border-color:#665580; }
.side-shelf[data-side="left"] .side-spine:focus-visible { outline:3px solid var(--yoru-primary); outline-offset:-3px; }
@media(prefers-reduced-motion:reduce) { .idle-fallback { opacity:.85; } }
/* v51: real comic speech, readable in full; no internal scrolling/disclosure. */
#idle-context-title { margin:0 0 5px; font:600 14px/1.5 var(--yoru-font); overflow-wrap:anywhere; }
#idle-bubble-reason { margin:0 0 8px; font:400 13px/1.5 var(--yoru-font); }
.idle-bubble-actions { display:flex; align-items:center; justify-content:space-between; flex-wrap:nowrap; gap:8px; }
.idle-bubble-actions>button { flex:1 1 auto; min-width:44px; min-height:44px; overflow-wrap:anywhere; }
#idle-bubble-close { flex:0 0 44px; margin-left:auto; background:transparent; }
#idle-bubble-target,#idle-bubble-current { padding:7px 12px; }
.idle-bubble,.idle-speech-body { overflow:visible; max-height:none; }

/* Text takes priority over art when the native speech needs the space. */
#idle-dock[data-speech-priority="true"] #idle-game-slot { visibility:hidden; pointer-events:none; }

/* v52: remove only the ornamental bottom-right slash, never focus/status. */
.story-item .card-copy::after { content:none !important; display:none !important; }



/* v53: requested display cleanup, not a state reset. Native focus remains. */
.side-related-link { border:0; border-radius:0; background:transparent; color:inherit; font:inherit; padding:2px 0; min-height:32px; text-align:left; cursor:pointer; }
.side-related-link:hover { background:transparent; color:var(--yoru-primary, #c1b2ff); text-decoration:underline; text-underline-offset:3px; }
.side-related-link:focus-visible { outline:3px solid #c1b2ff; outline-offset:3px; }
.side-spine.is-viewed:not(.is-saved) .side-spine-title { top:8px; }
.side-spine.is-viewed:not(.is-saved) .side-spine-status { display:none; }

/* Keep the document's classic scrollbar lane reserved as content grows/shrinks.
   Overlay scrollbars reserve zero space; do not add a guessed pixel padding. */
html { scrollbar-gutter:stable; }
@supports not (scrollbar-gutter:stable) {
  html { overflow-y:scroll; }
}
/* Native speech is a transparent accessibility layer over ONE SVG silhouette.
   Fallback styling remains until the original contour module has drawn. */
#idle-speech-tail { z-index:2; }

.idle-bubble.idle-balloon-ready { border-color:transparent; background:transparent; box-shadow:none; border-radius:0; color:var(--balloon-text,#292332); }
.idle-balloon-ready #idle-context-title,.idle-balloon-ready #idle-bubble-reason,.idle-balloon-ready #idle-bubble-status,.idle-balloon-ready #idle-bubble-close { color:var(--balloon-text,#292332); }
.idle-balloon-ready #idle-bubble-close { background:transparent; }
.idle-balloon-ready .idle-bubble-actions button { border-color:currentColor; color:var(--balloon-text,#292332); }
.idle-balloon-ready #idle-bubble-target { background:var(--balloon-text,#292332); color:var(--balloon-fill,#fff9ec); }

/* The dark emphasis balloon needs a light focus ring on transparent actions.
   Its light primary action retains the contrasting dark-purple ring above. */
.idle-balloon-ready[data-balloon="darkburst"] #idle-bubble-current:focus-visible,
.idle-balloon-ready[data-balloon="darkburst"] #idle-bubble-close:focus-visible { outline-color:#c1b2ff; }
