/* Dzwonice: the illustrated chapter uses the atlas' parchment, ink and brass. */
.rvl-chapter-open .rvl-atlas,.rvl-chapter-open .rvl-cast,.rvl-chapter-open .rvl-footer { display:none; }
.rvl-chapter-open .rvl-masthead { min-height:155px; padding-block:24px; }
.rvl-chapter-open .rvl-masthead h1 { font-size:40px; }
.rvl-chapter-open .rvl-masthead-heroes { opacity:.45; }
.rld-chapter { --rld-ink:#17384b; --rld-muted:#6d6558; color:var(--rld-ink); padding-bottom:32px; scroll-margin-top:24px; font-size:15px; line-height:1.65; }
.rld-chapter[hidden] { display:none; }
.rld-chapter * { box-sizing:border-box; }
.rld-chapter h2,.rld-chapter h3,.rld-chapter h4 { font-family:'Fraunces',Georgia,serif; line-height:1.2; letter-spacing:-.025em; }
.rld-chapter h3 { font-size:31px; margin:0 0 15px; }
.rld-chapter h4 { font-size:23px; margin:8px 0 12px; }
.rld-chapter p { margin:0 0 17px; }
.rld-chapter button { min-height:42px; padding:10px 16px; border:1px solid #bea575; border-radius:5px; background:#fffaf0; color:var(--rld-ink); font-size:12px; font-weight:700; line-height:1.4; transition:background .18s,border-color .18s; }
.rld-chapter button:hover:not(:disabled) { background:#fbe9b9; border-color:#9d793a; }
.rld-chapter button:disabled { cursor:default; opacity:.55; }
.rld-chapter button:focus-visible,.rld-chapter input:focus-visible { outline:3px solid #2788a2; outline-offset:3px; }
.rld-chapter input { min-width:0; padding:11px 13px; font:inherit; font-size:14px; color:var(--rld-ink); border:1px solid #bca371; border-radius:4px; background:#fffdf7; }
.rld-header { display:flex; gap:24px; align-items:center; justify-content:space-between; padding:26px 0 22px; }
.rld-header h2 { margin:9px 0 8px; font-size:clamp(30px,3.6vw,49px); }
.rld-header p { margin:0; color:var(--rld-muted); }
.rld-header > button { flex:none; }
.rld-save-line { display:flex; justify-content:space-between; flex-wrap:wrap; gap:8px; padding:10px 0 14px; border-bottom:1px solid #d2bd95; color:#7c6b4b; font-size:11px; }
.rld-tabs { display:flex; flex-wrap:wrap; gap:5px; margin:17px 0; }
.rld-tabs button { background:transparent; border-color:transparent; }
.rld-tabs button[aria-pressed="true"] { background:#1e4558; color:#fff3d8; border-color:#1e4558; }
.rld-message { min-height:10px; font-size:13px; color:#8c3728; }
.rld-message p { padding:12px 16px; border-left:3px solid #bc6e42; background:#f7e4d4; }
.rld-message button { margin-left:8px; }
.rld-scene { overflow:hidden; border:1px solid #cbb286; border-radius:8px; background:#fffbf3; box-shadow:0 5px 0 #a27e2e0e; }
.rld-scene-banner { min-height:215px; display:flex; flex-direction:column; justify-content:end; gap:12px; padding:30px clamp(20px,3vw,44px); background-size:cover; background-position:center 40%; color:#fff3d8; }
.rld-scene-banner > span { font-size:11px; text-transform:uppercase; letter-spacing:.14em; font-weight:700; }
.rld-scene-banner h3 { font-size:clamp(28px,3vw,42px); margin:0; text-shadow:0 2px 16px #081b26; }
.rld-scene-body { display:grid; grid-template-columns:240px minmax(0,1fr); gap:clamp(24px,4vw,60px); padding:clamp(20px,3.2vw,44px); }
.rld-speaker { align-self:start; padding-bottom:18px; text-align:center; border-bottom:1px solid #d9c49e; }
.rld-speaker img { display:block; width:100%; height:auto; max-height:350px; aspect-ratio:3/4; object-fit:cover; object-position:50% 20%; border-radius:5px; background:radial-gradient(ellipse at 50% 60%,#e3c997,transparent 75%); }
.rld-speaker img[src*="/profile/"] { object-fit:contain; }
.rld-speaker strong { display:block; font-family:'Fraunces',Georgia,serif; font-size:27px; margin-top:15px; }
.rld-speaker > span { display:block; font-size:11px; color:var(--rld-muted); }
.rld-speaker > button { font-size:10px; padding:6px 10px; min-height:32px; border:0; background:transparent; margin-top:8px; }
.rld-reading { min-width:0; max-width:850px; }
.rld-lines > p { color:#716455; font-size:15px; line-height:1.9; }
.rld-lines blockquote { margin:25px 0; padding:0 0 0 20px; border-left:2px solid #c9a15a; }
.rld-lines blockquote b { display:block; margin-bottom:6px; font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:#936a2c; }
.rld-lines blockquote p { font-family:'Fraunces',Georgia,serif; font-size:20px; line-height:1.65; color:#244454; }
.rld-choices { display:grid; gap:9px; margin-top:29px; }
.rld-choices > button { display:flex; align-items:center; gap:14px; text-align:left; padding:15px 17px; background:#f9f0df; }
.rld-choices > button > span { width:26px; height:26px; flex:none; display:grid; place-items:center; border:1px solid #d0b57c; border-radius:50%; color:#9a763b; font:13px Georgia,serif; }
.rld-choices b { font-size:13px; font-weight:650; }
.rld-choices small { display:block; margin-top:5px; font-size:11px; color:#82755e; font-weight:400; }
.rld-choices em { margin-left:auto; font:20px Georgia,serif; }
.rld-town { padding:27px; border:1px solid #ceb891; border-radius:8px; background:#fffbf2; }
.rld-town-copy { max-width:820px; padding-bottom:10px; }
.rld-town-copy h3 { margin-top:10px; }
.rld-town-copy p { color:var(--rld-muted); }
.rld-town-map { position:relative; aspect-ratio:2.05; min-height:400px; margin-top:12px; border:1px solid #b3935d; border-radius:6px; background-size:cover; background-position:center; }
.rld-town-map > button { position:absolute; left:var(--x); top:var(--y); transform:translate(-50%,-50%); max-width:215px; min-width:145px; background:#fff8e8f5; box-shadow:0 4px 15px #122d4244; text-align:left; border-color:#b68b3a; }
.rld-town-map > button::before { content:''; position:absolute; height:8px; width:8px; border-radius:50%; background:#f9d064; border:2px solid #775623; top:-6px; left:calc(50% - 4px); }
.rld-town-map b { display:block; font-size:12px; }
.rld-town-map small { display:block; margin-top:4px; font-size:9px; color:#756548; }
.rld-town-map button:disabled { opacity:.85; filter:grayscale(.75); }
.rld-people { display:grid; grid-template-columns:260px minmax(0,1fr); gap:25px; padding-top:10px; }
.rld-person-list { display:flex; flex-direction:column; gap:7px; }
.rld-person-list button { display:flex; align-items:center; gap:12px; text-align:left; padding:8px; }
.rld-person-list button[aria-pressed="true"] { border-color:#9d7534; background:#f5e4c1; }
.rld-person-list img { width:58px; height:68px; object-fit:cover; border-radius:3px; }
.rld-person-list b { display:block; font-size:12px; }
.rld-person-list small { display:block; margin-top:4px; color:var(--rld-muted); font-size:10px; font-weight:400; }
.rld-biography { display:grid; grid-template-columns:minmax(140px,33%) minmax(0,1fr); gap:26px; align-items:start; padding:26px; background:#fffaf0; border:1px solid #ceb58a; border-radius:6px; }
.rld-biography > img { width:100%; height:auto; max-height:500px; object-fit:cover; border-radius:5px; }
.rld-biography h3 { margin-top:10px; }
.rld-biography h4 { font-size:18px; margin-top:25px; }
.rld-biography p { font-size:14px; line-height:1.85; color:var(--rld-muted); }
.rld-person-description { font-family:'Fraunces',Georgia,serif; color:var(--rld-ink) !important; font-size:19px !important; }
.is-unknown > img,img.is-unknown { filter:grayscale(1) brightness(.24); }
.rld-journal,.rld-history,.rld-relations,.rld-missions { max-width:1140px; padding:22px 0; }
.rld-journal > header { max-width:790px; }
.rld-journal > header h3 { margin-top:10px; }
.rld-journal > article { padding:23px 27px; margin:16px 0; background:#fffaf0; border:1px solid #d0bb96; border-left:4px solid #b9924e; border-radius:4px; }
.rld-journal article > span { color:#9a793b; font-size:10px; font-weight:800; letter-spacing:.1em; }
.rld-journal article p { margin:0; color:var(--rld-muted); }
.rld-extra-entry { border-left-color:#518b90 !important; }
.rld-note { padding:10px 17px; border-left:2px solid #d6bd8e; font-style:italic; color:#75634b; }
.rld-empty { padding:25px; border:1px dashed #c1a575; border-radius:5px; color:var(--rld-muted); }
.rld-history ol { list-style:none; padding:0 0 0 15px; margin-top:27px; border-left:1px solid #c4a46a; }
.rld-history li { position:relative; padding:0 0 18px 16px; }
.rld-history li::before { content:''; position:absolute; top:8px; left:-20px; width:8px; height:8px; background:#b99550; border-radius:50%; }
.rld-history li small { color:#927241; }
.rld-final-choice,.rld-ending { padding:22px 25px; background:#e6ede4; border:1px solid #9bad99; border-radius:5px; }
.rld-final-choice small,.rld-final-choice strong { display:block; }
.rld-final-choice strong { font:27px 'Fraunces',Georgia,serif; margin-top:7px; }
.rld-ending button { margin:5px 8px 0 0; }
.rld-relations article { display:flex; align-items:center; gap:24px; padding:20px 0; border-bottom:1px solid #d8c49c; }
.rld-relations img { object-fit:cover; border-radius:4px; flex:none; }
.rld-relations h4 { margin:0 0 5px; }
.rld-relations article b { font-size:12px; color:#718459; }
.rld-relations p { margin:7px 0 0; font-size:13px; color:var(--rld-muted); }
.rld-missions > header { max-width:820px; }
.rld-missions header h3 { margin-top:10px; }
.rld-account-note { color:#8b6930; }
.rld-join { display:flex; flex-wrap:wrap; gap:10px; align-items:center; margin:26px 0; padding:18px; border:1px solid #d2bd95; background:#f8eedb; border-radius:5px; }
.rld-join label { font-size:13px; font-weight:800; margin-right:9px; }
.rld-join input { width:180px; letter-spacing:.16em; text-transform:uppercase; }
.rld-mission-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.rld-mission-grid article { min-width:0; padding:22px; background:#fffaf0; border:1px solid #cfb88d; border-radius:6px; }
.rld-mission-grid img { display:block; width:100%; height:170px; object-fit:cover; object-position:center 25%; border-radius:4px; margin-bottom:15px; }
.rld-mission-grid article > small { color:#9b7438; font-size:10px; text-transform:uppercase; letter-spacing:.1em; }
.rld-mission-grid h4 { font-size:23px; }
.rld-mission-grid p { font-size:13px; color:var(--rld-muted); }
.rld-mission-grid article > span { display:block; color:#827046; font-size:11px; margin-bottom:15px; }
.rld-mission-grid article > div { display:flex; flex-direction:column; gap:8px; }
.rld-room { max-width:1050px; padding:22px 0; }
.rld-room > header { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:15px; }
.rld-room h3 { margin:9px 0 0; }
.rld-room-players { display:flex; flex-wrap:wrap; gap:15px; margin:24px 0; padding-block:16px; border-block:1px solid #d3bf9b; }
.rld-room-players > span { flex:1; min-width:180px; }
.rld-room-players b,.rld-room-players small { display:block; }
.rld-room-players small { margin-top:4px; color:#8a7552; font-size:12px; }
.rld-invite-box { padding:30px; background:#f7eacd; border:1px solid #c6a46a; border-radius:6px; }
.rld-invite-box > strong { display:block; margin:13px 0 20px; font:900 36px 'Fraunces',Georgia,serif; letter-spacing:.16em; overflow-wrap:anywhere; }
.rld-invite-box > input { display:block; width:100%; margin:14px 0; font-size:12px; }
.rld-invite-box p { max-width:720px; font-size:13px; color:var(--rld-muted); }
.rld-trial,.rld-trial-result { padding:27px; background:#fffaf0; border:1px solid #c9b186; border-radius:6px; }
.rld-trial h4 { margin-top:13px; font-size:28px; }
.rld-private-clue { margin:20px 0; padding:18px 21px; background:#e4ede9; border-left:3px solid #477a7a; border-radius:3px; }
.rld-private-clue b { font-size:12px; color:#3f7778; }
.rld-private-clue p { margin:10px 0; font-size:15px; }
.rld-private-clue small { display:block; font-size:12px; color:#61776c; }
.rld-answer-options { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin:20px 0; }
.rld-answer-options button { min-height:54px; text-align:left; font-size:13px; }
.rld-answer-options button[aria-pressed="true"] { background:#204c5e; border-color:#204c5e; color:#fff3cf; opacity:1; }
.rld-chapter .rld-primary { background:#f4cd73; border-color:#b7924a; color:#233848; }
.rld-trial-result { background:#e8efe5; border-color:#a4b69b; }
.rld-round-history { margin:20px 0; border-bottom:1px solid #d1bc96; padding-bottom:12px; }
.rld-round-history summary { cursor:pointer; padding:10px 0; font-size:13px; color:#8a6c39; font-weight:800; }
.rld-round-history p { font-size:13px; margin-top:15px; }
.rld-chat { margin-top:25px; padding:23px; background:#f4e9d6; border:1px solid #d0b98f; border-radius:5px; }
.rld-chat h4 { font-size:20px; margin-top:0; }
.rld-chat-log { max-height:220px; overflow:auto; overscroll-behavior:contain; font-size:13px; }
.rld-chat-log p { overflow-wrap:anywhere; margin-bottom:9px; }
.rld-chat-log b { color:#916d38; }
.rld-chat form { display:flex; gap:10px; margin-top:15px; }
.rld-chat input { flex:1; }
@media (max-width:1000px) { .rld-scene-body { grid-template-columns:180px minmax(0,1fr); gap:25px; } .rld-people { grid-template-columns:210px minmax(0,1fr); gap:16px; } .rld-biography { grid-template-columns:1fr; } .rld-biography > img { width:160px; max-height:225px; } .rld-mission-grid { gap:12px; } .rld-mission-grid article { padding:16px; } }
@media (max-width:700px) { .rvl-chapter-open .rvl-masthead { min-height:140px; } .rvl-chapter-open .rvl-masthead h1 { font-size:31px; } .rld-header { align-items:start; flex-direction:column; gap:16px; } .rld-header h2 { font-size:32px; } .rld-tabs { gap:3px; } .rld-tabs button { padding:9px 11px; font-size:11px; } .rld-scene-banner { min-height:155px; padding:22px; } .rld-scene-body { grid-template-columns:1fr; padding:22px; gap:18px; } .rld-speaker { display:grid; grid-template-columns:83px 1fr; column-gap:15px; text-align:left; align-items:center; padding-bottom:17px; } .rld-speaker img { width:83px; height:108px; grid-row:1/4; } .rld-speaker strong { margin:0; align-self:end; font-size:25px; } .rld-speaker > button { padding-left:0; text-align:left; margin:0; align-self:start; } .rld-lines blockquote p { font-size:19px; } .rld-lines > p { font-size:14px; } .rld-town { padding:19px; } .rld-town-map { aspect-ratio:auto; min-height:380px; display:grid; grid-template-columns:1fr 1fr; gap:10px; align-content:end; padding:150px 12px 12px; } .rld-town-map > button { position:relative; left:auto; top:auto; transform:none; min-width:0; max-width:none; } .rld-town-map small { font-size:10px; } .rld-town-map > button::before { display:none; } .rld-people { grid-template-columns:1fr; } .rld-person-list { display:grid; grid-template-columns:1fr 1fr; gap:6px; } .rld-person-list button { gap:7px; } .rld-person-list img { width:40px; height:54px; } .rld-person-list b { font-size:11px; } .rld-person-list small { font-size:9px; } .rld-biography { padding:20px; } .rld-biography > img { width:200px; max-height:285px; } .rld-mission-grid { grid-template-columns:1fr; } .rld-mission-grid img { height:210px; } .rld-join { align-items:stretch; } .rld-join label { flex-basis:100%; } .rld-join input { flex:1; width:120px; } .rld-relations article { gap:16px; } .rld-relations img { width:65px; height:90px; } .rld-answer-options { grid-template-columns:1fr; } .rld-invite-box,.rld-trial,.rld-trial-result,.rld-chat { padding:20px; } .rld-chat form { flex-wrap:wrap; } .rld-chat input { flex-basis:100%; } .rld-invite-box > strong { font-size:29px; } }
@media (prefers-reduced-motion:reduce) { .rld-chapter button { transition:none; } }

/* Illustrated story scenes: environment, foreground sprite and a paced dialogue track. */
.rvl-chapter-open .rvl-masthead,.rvl-chapter-open .rvl-toolbar { display:none; }
.rld-cinematic-scene { overflow:hidden; border:1px solid #bfa36b; border-radius:8px; background:#fffaf0; box-shadow:0 5px 0 #8e6e2b16; }
.rld-cinema { position:relative; min-height:555px; overflow:hidden; isolation:isolate; background:#183f53; }
.rld-cinema-world { position:absolute; z-index:-3; inset:-18px; background-image:var(--scene-bg); background-size:cover; background-position:center; animation:rld-camera-drift 17s ease-in-out infinite alternate; }
.rld-cinema-haze { position:absolute; z-index:-1; inset:0; background:linear-gradient(180deg,#0c273b8c,transparent 39%,#0a233057),linear-gradient(90deg,#0a273535,transparent 65%); pointer-events:none; }
.rld-cinema > header { position:relative; z-index:3; max-width:80%; padding:25px 30px; color:#fff2cc; text-shadow:0 2px 10px #061421; }
.rld-cinema > header > span:first-child { font-size:10px; font-weight:800; text-transform:uppercase; letter-spacing:.15em; }
.rld-cinema > header h3 { margin:9px 0 10px; font-size:clamp(26px,3vw,39px); }
.rld-frame-count { display:inline-block; font-size:10px; padding:3px 10px; border:1px solid #efd29e6b; border-radius:20px; background:#17354e80; }
.rld-cinema-character { position:absolute; z-index:0; right:-2%; bottom:-30px; width:48%; max-height:95%; height:auto; object-fit:contain; object-position:center bottom; filter:drop-shadow(0 14px 20px #07192588); animation:rld-character-arrive .6s ease-out,rld-character-breathe 6s .6s ease-in-out infinite alternate; transform-origin:center 90%; pointer-events:none; }
.rld-cinema.is-speaking .rld-cinema-character { filter:drop-shadow(0 9px 22px #fff0b326) drop-shadow(0 14px 20px #07192588); }
.rld-cinema-motes { position:absolute; z-index:1; inset:0; pointer-events:none; }
.rld-cinema-motes i { position:absolute; width:3px; height:3px; border-radius:50%; background:#ffedbc; box-shadow:0 0 9px #ffdd73; animation:rld-mote-rise 8s ease-in-out infinite; left:15%; bottom:8%; opacity:.7; }
.rld-cinema-motes i:nth-child(2) { left:33%; animation-delay:-3s; animation-duration:11s; }
.rld-cinema-motes i:nth-child(3) { left:64%; animation-delay:-6s; }
.rld-cinema-motes i:nth-child(4) { left:83%; animation-delay:-2s; animation-duration:13s; }
.rld-cinema-motes i:nth-child(5) { left:47%; animation-delay:-7s; }
.rld-speech { position:absolute; z-index:4; left:25px; bottom:25px; width:min(72%,750px); min-height:160px; padding:27px 27px 18px; border:1px solid #e1c183; border-radius:7px; background:linear-gradient(135deg,#fff9eaf5,#f7ecd5f7); box-shadow:0 7px 24px #05172773,inset 0 0 0 3px #fff8e95e; animation:rld-dialogue-in .28s ease-out; }
.rld-speech-name { position:absolute; top:-16px; left:21px; padding:7px 19px; border:1px solid #d2ab60; border-radius:4px; background:#173f52; color:#ffe2a6; font-family:'Fraunces',Georgia,serif; font-size:16px; font-weight:800; letter-spacing:.015em; }
.rld-speech > p { font-family:'Fraunces',Georgia,serif; font-size:19px; line-height:1.65; color:#254252; margin:0 0 15px; }
.rld-speech > footer { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.rld-speech > footer > div { display:flex; align-items:center; gap:7px; }
.rld-speech button { min-height:35px; padding:7px 13px; background:#f8e3b1; font-size:11px; border-color:#c5a566; }
.rld-frame-dots { display:flex; gap:5px; flex-wrap:wrap; }
.rld-frame-dots i { width:6px; height:6px; border:1px solid #b59b6b; border-radius:50%; }
.rld-frame-dots i.is-lit { background:#aa803b; border-color:#aa803b; }
.rld-choice-prompt { color:#8f6d34; font-size:10px; font-weight:800; }
.rld-cinema-under { padding:18px 28px 25px; }
.rld-scene-tools { display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.rld-scene-tools button { min-height:30px; padding:6px 10px; background:transparent; font-size:10px; border-color:#d8c39b; }
.rld-scene-tools > span { margin-left:auto; font-size:10px; color:#9a8051; }
.rld-cinema-under .rld-choices { margin-top:20px; animation:rld-dialogue-in .35s ease-out; }
.rld-transcript { margin-top:17px; }
.rld-transcript summary { cursor:pointer; color:#99805b; font-size:11px; padding:7px 0; }
.rld-transcript .rld-lines { max-width:800px; padding:15px 3px; }
.rld-evidence-board { padding:25px; margin:25px 0; border:1px solid #bfa16e; border-radius:6px; background:linear-gradient(120deg,#ead8b7,#f3e5cc); }
.rld-evidence-board > div { display:flex; flex-wrap:wrap; gap:12px; margin:20px 0; }
.rld-evidence-board button { flex:1; min-width:125px; max-width:220px; padding:6px; background:#fff9e9; border:2px solid #d7bd8e; box-shadow:0 4px 8px #75532225; transform:rotate(-1deg); text-align:left; }
.rld-evidence-board button:nth-child(even) { transform:rotate(1deg); }
.rld-evidence-board button[aria-pressed="true"] { border-color:#2c777c; background:#e4efdf; }
.rld-evidence-board button img { display:block; width:100%; height:100px; object-fit:cover; }
.rld-evidence-board button span { display:block; padding:10px 7px; font-family:'Fraunces',Georgia,serif; font-size:14px; }
.rld-evidence-board > p { padding:15px 17px; margin:0; background:#fff8e575; border-left:2px solid #9c7e4f; font-size:13px; color:#61533e; }
.rld-rewards > header { max-width:830px; padding:20px 0; }
.rld-rewards header h3 { margin-top:12px; }
.rld-reward-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; margin:15px 0; }
.rld-reward-grid > article { min-width:0; text-align:center; padding:25px 18px; border:1px solid #ceb382; border-radius:7px; background:radial-gradient(ellipse at 50% 15%,#f5d98d40,transparent 60%),#fffaf0; }
.rld-reward-card { display:flex; justify-content:center; padding:0 0 20px; cursor:pointer; }
.rld-reward-grid .is-locked .rld-reward-card { filter:grayscale(.85) brightness(.85); opacity:.8; }
.rld-reward-grid article > small { font-size:9px; color:#9b7939; font-weight:800; letter-spacing:.1em; }
.rld-reward-grid article.is-earned { border-color:#b79042; background:radial-gradient(ellipse at 50% 15%,#f5d98d70,transparent 65%),#fffaf0; }
.rld-reward-grid h4 { font-size:23px; margin:11px 0; }
.rld-reward-grid p { font-size:12px; line-height:1.75; color:#7a6b53; }
.rld-card-art { width:190px; height:auto; border-radius:7px; }
.rld-reward-dialog { position:fixed; color:#fff0c6; text-align:center; isolation:isolate; overflow:auto; width:min(600px,calc(100vw - 30px)); max-height:94dvh; margin:auto; padding:25px 35px 30px; border:1px solid #dab35c; border-radius:13px; background:radial-gradient(ellipse at 50% 42%,#7e683d60,transparent 65%),#142b3c; box-shadow:0 25px 100px #0008; }
.rld-reward-dialog { overflow-x:hidden; overflow-y:auto; }
.rld-reward-dialog::backdrop { background:#061525d9; backdrop-filter:blur(5px); }
.rld-reward-dialog > .rvl-eyebrow { color:#e6c780; }
.rld-reward-dialog h3 { font-size:29px; margin:10px 0 16px; }
.rld-reward-dialog h4 { margin:13px 0 8px; font-size:24px; }
.rld-reward-dialog p { color:#cbbf9f; font-size:12px; max-width:420px; margin:0 auto 17px; }
.rld-reward-rays { position:absolute; z-index:-1; inset:20% 0 5%; opacity:.3; background:repeating-conic-gradient(from 0deg,#f8d47544 0deg 8deg,transparent 8deg 27deg); mask-image:radial-gradient(ellipse,#000,transparent 70%); animation:rld-ray-turn 30s linear infinite; pointer-events:none; }
.rld-reward-reveal { display:flex; justify-content:center; perspective:1000px; }
.rld-reward-reveal > .dl-card,.rld-reward-reveal > img { animation:rld-card-reveal .85s cubic-bezier(.2,.8,.3,1) both; filter:drop-shadow(0 0 22px #ffd77c50); }
.dl-card[data-set="DZ01"] .dl-card-body small { font-size:.61em; line-height:1.18; -webkit-line-clamp:6; }
@keyframes rld-camera-drift { from { transform:scale(1.02) translate(-.3%,0); } to { transform:scale(1.07) translate(.6%,-.5%); } }
@keyframes rld-character-arrive { from { opacity:0; transform:translateX(22px); } to { opacity:1; transform:translateX(0); } }
@keyframes rld-character-breathe { from { transform:translateY(0) rotate(-.2deg); } to { transform:translateY(-5px) rotate(.2deg); } }
@keyframes rld-dialogue-in { from { opacity:.2; transform:translateY(7px); } to { opacity:1; transform:translateY(0); } }
@keyframes rld-mote-rise { 0% { transform:translateY(0); opacity:0; } 20% { opacity:.75; } 100% { transform:translate(35px,-290px); opacity:0; } }
@keyframes rld-card-reveal { from { opacity:0; transform:translateY(30px) rotateY(-65deg) scale(.8); } to { opacity:1; transform:translateY(0) rotateY(0) scale(1); } }
@keyframes rld-ray-turn { to { transform:rotate(360deg); } }
.rvl-motion-paused .rld-cinema-world,.rvl-motion-paused .rld-cinema-character,.rvl-motion-paused .rld-cinema-motes i,.rld-motion-off .rld-cinema-world,.rld-motion-off .rld-cinema-character,.rld-motion-off .rld-cinema-motes i { animation-play-state:paused; }
.rvl-motion-paused .rld-cinema-character,.rld-motion-off .rld-cinema-character,.rld-motion-off .rld-speech,.rld-motion-off .rld-reward-rays,.rld-motion-off .rld-reward-reveal > * { animation:none; }
@media (max-width:1000px) { .rld-speech { width:77%; } .rld-cinema-character { width:52%; right:-3%; } }
@media (max-width:700px) { .rld-header { padding-block:19px 14px; } .rld-cinema { min-height:590px; } .rld-cinema > header { padding:19px 20px; max-width:95%; } .rld-cinema > header h3 { font-size:28px; } .rld-cinema-character { right:-3%; bottom:133px; width:66%; max-height:64%; } .rld-speech { left:12px; bottom:15px; width:calc(100% - 24px); padding:24px 20px 15px; min-height:175px; } .rld-speech > p { font-size:17px; line-height:1.65; } .rld-speech-name { left:15px; font-size:14px; } .rld-cinema-under { padding:13px 18px 20px; } .rld-scene-tools > span { flex-basis:100%; margin-left:0; } .rld-reward-grid { grid-template-columns:1fr 1fr; gap:12px; } .rld-reward-grid > article { padding:20px 9px; } .rld-reward-card .dl-card { --w:155px !important; } .rld-reward-grid h4 { font-size:18px; } .rld-reward-dialog { padding:20px 20px 25px; } .rld-reward-dialog h3 { font-size:25px; } .rld-reward-reveal .dl-card { --w:210px !important; } }
@media (max-width:390px) { .rld-reward-grid { grid-template-columns:1fr; } .rld-reward-card .dl-card { --w:185px !important; } .rld-cinema { min-height:645px; } .rld-speech > p { font-size:16px; } }
@media (prefers-reduced-motion:reduce) { .rld-cinema-world,.rld-cinema-character,.rld-cinema-motes i,.rld-speech,.rld-cinema-under .rld-choices,.rld-reward-rays,.rld-reward-reveal > * { animation:none !important; } }

/* Polish pass: continuous stage, readable pacing, no restarts on every click. */
.rld-view.is-switching { animation:rld-view-in .32s ease-out; }
.rld-cinema { contain:paint; cursor:pointer; }
.rld-cinema button,.rld-cinema a { cursor:pointer; }
.rld-cinema-world,.rld-cinema-character,.rld-cinema-motes i { will-change:transform; }
.rld-cinema::after { content:''; position:absolute; inset:0; z-index:2; pointer-events:none; background:radial-gradient(ellipse at 50% 45%,transparent 55%,#04121d66 100%); }
.rld-cinema-character { transition:filter .45s ease,translate .45s ease; }
.rld-cinema:not(.is-speaking) .rld-cinema-character { filter:drop-shadow(0 14px 20px #07192588) brightness(.9) saturate(.92); }
.rld-cinema.is-speaking .rld-cinema-character { translate:0 -5px; }
.rld-cinema.is-entering .rld-cinema-world { animation:rld-world-in 1s ease-out both,rld-camera-drift 17s ease-in-out infinite alternate; }
.rld-cinema.is-entering > header { animation:rld-header-in .7s .12s ease-out both; }
.rld-cinema.is-entering .rld-speech { animation:rld-dialogue-in .4s .3s ease-out both; }
.rld-speech > p span { display:inline-block; animation:rld-word-in .32s ease-out both; animation-delay:calc(var(--i,0) * 24ms + 90ms); }
.rld-speech .rld-next { animation:rld-cue 1.6s 1s ease-in-out infinite; }
.rld-speech .rld-next:hover { animation:none; }
.rld-cinema-under .rld-choices > button,.rld-cinema-under .rld-choices > .rlb-fight-choice { animation:rld-choice-in .38s ease-out both; animation-delay:calc(var(--i,0) * 70ms + 120ms); }
.rld-choices > button:hover:not(:disabled) { transform:translateX(4px); }
.rld-choices > button { transition:background .18s,border-color .18s,transform .18s; }
.rld-chapter button:active:not(:disabled) { transform:translateY(1px); }
.rld-town-copy p { animation:rld-choice-in .5s ease-out both; animation-delay:calc(var(--i,0) * 120ms); }
.rld-town-map > button { transition:background .18s,border-color .18s,box-shadow .2s,translate .2s; animation:rld-choice-in .5s ease-out both; animation-delay:calc(var(--i,0) * 80ms + 200ms); }
.rld-town-map > button:hover:not(:disabled),.rld-town-map > button:focus-visible { translate:0 -3px; box-shadow:0 9px 22px #122d4266; }
.rld-town-map > button:not(:disabled)::before { animation:rld-pin-pulse 2.4s ease-out infinite; }
.rld-busy .rld-choices,.rld-busy .rld-town-map { opacity:.65; pointer-events:none; transition:opacity .15s; }
.rld-busy .rld-cinema { filter:brightness(.92); transition:filter .2s; }
.rld-reward-dialog[open],.rlb-brief[open] { animation:rld-dialog-in .38s cubic-bezier(.2,.8,.3,1); }
.rld-reward-dialog[open]::backdrop,.rlb-brief[open]::backdrop { animation:rld-fade .3s ease-out; }
.rld-reward-reveal > .dl-card::after { content:''; position:absolute; inset:0; pointer-events:none; background:linear-gradient(115deg,transparent 35%,#fff6 50%,transparent 65%); transform:translateX(-120%); animation:rld-glint 2.2s 1s ease-in-out 1; }
.rld-reward-reveal > .dl-card { position:relative; overflow:hidden; }
@keyframes rld-world-in { from { opacity:0; filter:brightness(.4) blur(5px); } to { opacity:1; filter:brightness(1) blur(0); } }
@keyframes rld-header-in { from { opacity:0; transform:translateY(-8px); } to { opacity:1; transform:translateY(0); } }
@keyframes rld-word-in { from { opacity:0; transform:translateY(4px); } to { opacity:1; transform:translateY(0); } }
@keyframes rld-choice-in { from { opacity:0; transform:translateY(9px); } to { opacity:1; transform:translateY(0); } }
@keyframes rld-view-in { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:translateY(0); } }
@keyframes rld-cue { 0%,100% { box-shadow:0 0 0 0 #d4a24a00; } 50% { box-shadow:0 0 0 5px #d4a24a55; } }
@keyframes rld-pin-pulse { 0% { box-shadow:0 0 0 0 #f9d064cc; } 70%,100% { box-shadow:0 0 0 11px #f9d06400; } }
@keyframes rld-dialog-in { from { opacity:0; transform:translateY(18px) scale(.97); } to { opacity:1; transform:translateY(0) scale(1); } }
@keyframes rld-fade { from { opacity:0; } to { opacity:1; } }
@keyframes rld-glint { to { transform:translateX(120%); } }
.rld-motion-off .rld-cinema::after,.rld-motion-off .rld-view { animation:none; }
.rld-motion-off .rld-speech > p span,.rld-motion-off .rld-speech .rld-next,.rld-motion-off .rld-choices > button,.rld-motion-off .rld-town-copy p,.rld-motion-off .rld-town-map > button,.rld-motion-off .rld-town-map > button::before,.rld-motion-off .rld-cinema > header,.rld-motion-off .rld-cinema-world { animation:none !important; }
@media (prefers-reduced-motion:reduce) {
  .rld-view.is-switching,.rld-speech > p span,.rld-speech .rld-next,.rld-cinema-under .rld-choices > button,.rld-cinema-under .rld-choices > .rlb-fight-choice,.rld-town-copy p,.rld-town-map > button,.rld-town-map > button::before,.rld-cinema > header,.rld-cinema.is-entering .rld-cinema-world,.rld-cinema.is-entering .rld-speech,.rld-reward-dialog[open],.rlb-brief[open],.rld-reward-reveal > .dl-card::after { animation:none !important; }
  .rld-choices > button,.rld-cinema-character,.rld-town-map > button { transition:none; }
}

.rld-reset { margin-left:8px; min-height:26px !important; padding:3px 10px !important; font-size:10px !important; background:transparent !important; border-color:#d3bd8f !important; color:#7c6b4b !important; }
.rld-reset-confirm { display:block; margin-top:8px; padding:12px 14px; border:1px solid #c58a6e; border-left-width:4px; border-radius:4px; background:#f9e7da; color:#6d3a28; line-height:1.7; animation:rld-view-in .25s ease-out; }
.rld-reset-confirm button { min-height:30px; padding:5px 12px; margin:4px 6px 0 0; }
.rld-chapter .rld-reset-confirm .rld-reset-yes { background:#a8452e; border-color:#7e3220; color:#fff3e8; }
.rld-save-line > span:first-child { flex:1 1 380px; }
@media (prefers-reduced-motion:reduce) { .rld-reset-confirm { animation:none; } }
