/* v5.2: full-width reading, companion gallery and illustrated battle worlds. */
#readingDialog .reading-v2-body{max-width:none;width:100%;margin:0;grid-template-columns:minmax(0,1fr) clamp(300px,22vw,390px);gap:16px;padding:14px 18px 18px;box-sizing:border-box}
#readingDialog .reading-v2-center{overflow:auto;scrollbar-gutter:stable;min-width:0;padding-bottom:4px}
#readingDialog .comic-reader-v2{flex:none;padding:8px;min-width:0}
#readingDialog .comic-book-frame{grid-template-columns:38px minmax(0,1fr) 38px!important;gap:5px!important}
#readingDialog .reading-bottom-audio{position:sticky;bottom:0;z-index:6;flex-wrap:wrap;box-shadow:0 -4px 18px #48628312}
#readingDialog .reading-v2-side{min-width:0}
#petDialog{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;margin:0;border:0;border-radius:0;padding:0;overflow:hidden;background:#f6f1fb}
#petDialog .pet-picker{width:100%;height:100%;max-height:none;display:flex;flex-direction:column;box-sizing:border-box;border:0;border-radius:0;padding:24px clamp(14px,3vw,54px);background:radial-gradient(ellipse at 80% 0%,#e8dff8,transparent 50%),#fffcf6;overflow:hidden}
#petDialog .section-heading{flex:none;gap:12px;margin-bottom:6px}
#petDialog h3{font-size:clamp(25px,3vw,38px)}
#petDialog .pet-picker>p{flex:none;margin:0 0 8px;line-height:1.5}
#petOptions{flex:1;min-height:0;overflow:auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));align-content:start;gap:16px;padding:8px 8px 20px;margin-top:8px;scrollbar-gutter:stable}
#petOptions .pet-option{min-width:0;display:flex;flex-direction:column;align-items:center;padding:12px;gap:8px;background:linear-gradient(145deg,#fffefa,#efe9f8);border:1px solid #dccfe9;border-bottom:4px solid #cbbbdc;border-radius:24px;transition:transform .18s,box-shadow .18s}
#petOptions .pet-option:hover{transform:translateY(-3px);box-shadow:0 8px 22px #79648c25}
#petOptions .pet-option.selected{border-color:#b195d8;background:#f0e7fa;box-shadow:0 0 0 2px #b195d8}
#petOptions .pet-option b{font-size:18px}#petOptions .pet-option small{font-size:13px;line-height:1.5;white-space:normal}
#petOptions .illustrated-companion{width:100%;height:auto;aspect-ratio:1;max-width:190px}
.dex-art-open{position:relative;border:0;cursor:zoom-in;width:100%;display:block;color:#675181}
.dex-art-open:focus-visible{outline:3px solid #8060c6;outline-offset:3px}
.dex-zoom-hint{position:absolute;bottom:8px;left:50%;transform:translateX(-50%);border-radius:20px;padding:5px 10px;background:#fffdf5ed;border:1px solid #e5d6b6;color:#655278;font-size:12px;font-weight:bold;white-space:nowrap;box-shadow:0 3px 9px #79648c18}
.companion-art-dialog{width:min(1160px,96vw);max-width:96vw;max-height:96dvh;padding:0;border:1px solid #ddc99c;border-radius:26px;background:#fffcf6;color:#2e3654;overflow:auto;box-shadow:0 24px 80px #21153950}
.companion-art-dialog::backdrop{background:#171b36ce;backdrop-filter:blur(7px)}
.companion-art-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 26px;background:linear-gradient(110deg,#293958,#51457b);color:#fff4cf;position:sticky;top:0;z-index:2}
.companion-art-header .eyebrow{color:#e4d6f6}.companion-art-header h2{margin:0;font-size:30px}.companion-art-header p{margin:0 0 6px}
.companion-art-header button{background:#ffffff24;border:1px solid #ffffff30;color:white;flex:none}
#companionArtContent{display:grid;grid-template-columns:minmax(0,640px) minmax(220px,1fr);gap:24px;padding:24px;align-items:center}
.companion-art-display{width:100%;aspect-ratio:1;border-radius:24px;overflow:hidden;background:#fff;box-shadow:0 7px 22px #6c557914}
.companion-art-display>img,.companion-art-display .pet-silhouette,.companion-art-display svg{width:100%;height:100%;display:block;object-fit:contain}
.companion-art-info h3{font-size:clamp(24px,3vw,36px);line-height:1.2}.companion-art-info p{font-size:17px;line-height:1.6}.companion-art-info button{width:100%}
.companion-art-controls{display:flex;align-items:center;justify-content:space-between;gap:14px;border-top:1px solid #e6dcef;padding:16px 24px;position:sticky;bottom:0;background:#fffcf6f5;z-index:2}.companion-art-controls span{font-size:15px;white-space:nowrap}
.quest-glyph{display:block;width:100%;height:100%;filter:drop-shadow(0 3px 3px #72647e15)}
.grammar-mission .grammar-mission-no{width:58px;height:58px;border:0;background:none;border-radius:50%;flex:none}
.grammar-mission{grid-template-columns:58px minmax(0,1fr) 20px!important;gap:12px!important;padding:14px 12px!important;border-color:#dfd3ec;background:linear-gradient(135deg,#fffdf9,#f4f0fb)}
.grammar-mission>div{min-width:0}.grammar-mission b,.grammar-mission small{white-space:normal!important;overflow:visible!important;text-overflow:clip!important;display:block;line-height:1.4}
.grammar-mission.active{background:linear-gradient(130deg,#7660c5,#9a7ad9);border-color:#ae91df;box-shadow:0 6px 16px #795eb225}
.grammar-mission.active b,.grammar-mission.active small{color:white}.grammar-mission.completed:not(.active){background:linear-gradient(130deg,#f2fff5,#fff7dc)}
#grammarBossBtn>span,#grammarDailyBtn>span,#grammarVaultBtn>span{width:55px;height:55px;flex:none;display:block}
.grammar-question-orb .quest-glyph{width:68px;height:68px}.grammar-question-orb{width:78px;height:78px}
.grammar-feature-orb .quest-glyph{width:74px;height:74px}
.grammar-boss-btn,.grammar-side-feature{gap:12px;align-items:center}.grammar-side-feature>div{min-width:0}
/* Runtime SVG paper removal retains portrait colours; no card border or rectangular shadow. */
.world-sprite{width:100%;height:100%;mix-blend-mode:normal;line-height:0}
.world-sprite>.world-unframed{width:100%;height:100%;display:block;filter:none!important;overflow:visible}
.world-sprite .portrait-frame{display:none}
.cinematic-arena{height:clamp(300px,29vw,420px);border:1px solid #a78cc4;border-radius:26px;position:relative;overflow:hidden;background:#d3d8eb;isolation:isolate;box-shadow:inset 0 0 45px #76648428}
.arena-scene{position:absolute;inset:0;background:#dce5ec url('/rpg/scenes/celestial-arena.webp') center 66%/cover no-repeat;pointer-events:none}
.cinematic-arena .arena-scene:after{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 20% 58%,#fffdf2c9,transparent 35%),radial-gradient(ellipse at 80% 55%,#fff7e7b3,transparent 36%),linear-gradient(180deg,#27385e3b,transparent 28%,#f9eee047 58%,#eedccc1a)}
.arena-banner{position:absolute;z-index:4;left:50%;top:12px;transform:translateX(-50%);width:max-content;max-width:80%;text-align:center;display:grid;gap:3px;padding:9px 20px;border-radius:18px;background:#283656e8;border:1px solid #dac593;color:#fff2cc;box-shadow:0 6px 16px #27324f24}
.arena-banner>span{font-size:10px;letter-spacing:.2em}.arena-banner>b{font-size:14px;line-height:1.35}
.cinematic-arena .grammar-hero-fighter.pet-only{width:clamp(140px,21vw,285px);left:8%;bottom:14px;gap:0;display:block;transform:none;filter:none;mix-blend-mode:normal}
.cinematic-arena .grammar-hero-fighter.pet-only .grammar-fighter-pet.solo{width:100%;height:auto;aspect-ratio:1;position:relative;filter:none}
.cinematic-arena .grammar-fighter-pet.solo .pet-svg{width:100%;height:100%;filter:none}
.cinematic-arena .grammar-dragon{right:7%;bottom:14px;width:clamp(170px,25vw,340px);transform:none;filter:none;mix-blend-mode:normal}
.cinematic-arena .grammar-dragon>span{width:100%;aspect-ratio:1;height:auto;filter:none;animation:arena-hover 4s ease-in-out infinite}
.cinematic-arena .grammar-hero-fighter small,.cinematic-arena .grammar-dragon small{font-size:11px;line-height:1.4;background:#f7efd9e6;color:#423d65;border:1px solid #b69a70;padding:6px 10px;position:relative;z-index:2;margin:0 6px;letter-spacing:.04em}
.arena-sigil{position:absolute;left:50%;bottom:20px;transform:translateX(-50%) rotateX(62deg);width:110%;aspect-ratio:1;border-radius:50%;border:3px solid #cb974b;box-shadow:0 0 12px #f6d896,inset 0 0 15px #ffedb588;pointer-events:none}
.arena-sigil i{position:absolute;inset:8%;border:2px dashed #c5a06c;border-radius:50%}.arena-sigil i:nth-child(2){inset:20%;border-style:solid}.arena-sigil i:nth-child(3){inset:27%;border-radius:12px;transform:rotate(45deg)}.arena-sigil>span{position:absolute;inset:0;display:grid;place-items:center;font-size:80px;color:#d2a463}
.arena-versus{position:absolute;top:48%;left:50%;transform:translate(-50%,-50%) rotate(-8deg);font-size:clamp(24px,4vw,56px);font-weight:1000;font-style:italic;color:#fff3c9;text-shadow:2px 3px 0 #644b82,0 0 20px #5d4780;z-index:2}
.cinematic-arena .grammar-spell-lane{inset:40% 29% auto;height:70px;z-index:4;pointer-events:none}
.cinematic-arena .grammar-spell-lane span{width:7px;height:7px;border-radius:50%;background:#ffefb6;box-shadow:0 0 10px #a2deff;animation:grammarSpellDrift 3s linear infinite}
.cinematic-arena .grammar-spell-lane:after{content:'';display:block;position:absolute;left:0;top:22px;width:30%;height:13px;border-radius:50%;opacity:0;background:linear-gradient(90deg,transparent,#89dbe9,#fff5cb);box-shadow:0 0 18px #7bbfdc}
.cinematic-arena.spell-hit .grammar-spell-lane:after,.cinematic-arena.pet-burst .grammar-spell-lane:after{animation:arena-spell .6s ease-out}
.cinematic-arena.dragon-counter .grammar-spell-lane:after{background:linear-gradient(90deg,#ffedb4,#ed9d71,transparent);animation:arena-counter .65s ease-out}
.arena-energy{position:absolute;inset:0;opacity:0;pointer-events:none;background:radial-gradient(ellipse at 70% 60%,#ffc27b70,transparent 36%)}
.spell-hit .arena-energy,.pet-burst .arena-energy{animation:arena-impact .65s ease-out}
.grammar-game-top .grammar-pet-skill{background:linear-gradient(130deg,#fff8df,#f3e9fb);border-color:#dfc496;color:#54426e}.grammar-game-top .grammar-pet-skill b,.grammar-game-top .grammar-pet-skill small{color:#54426e}
.boss-mode .grammar-question-card{padding:24px clamp(18px,3vw,44px);background:linear-gradient(130deg,#fffdf6,#f5effb);border:1px solid #e0d2e8;border-radius:24px}.boss-mode .grammar-question-card h4{margin:16px auto 22px;font-size:clamp(24px,3vw,42px);max-width:1050px}.boss-mode .grammar-choice-grid button{min-height:70px;border-color:#ded3ee;box-shadow:0 4px 0 #e4daee}.boss-mode .grammar-question-orb{width:52px;height:52px}.boss-mode .grammar-question-orb .quest-glyph{width:48px;height:48px}
/* Vocabulary Boss Rush shares the world, with a different guardian and five gate seals. */
.synonym-boss-gate{grid-template-columns:minmax(280px,.9fr) minmax(0,1.4fr);border:1px solid #c4a46c;border-radius:28px;overflow:hidden;background:#30234e;box-shadow:0 12px 28px #4e34632b}
.synonym-boss-gate .boss-gate-art{min-height:430px;background:#e2dbea;isolation:isolate}.synonym-boss-gate .boss-gate-art:before,.synonym-boss-gate .boss-gate-art:after{display:none}
.boss-gate-art .arena-scene{background-position:78% center;opacity:.85}.boss-gate-art .boss-dragon{position:relative;width:min(100%,390px);height:auto;aspect-ratio:1;filter:none;mix-blend-mode:normal;animation:arena-hover 5s ease-in-out infinite;align-self:center;margin-bottom:30px}
.boss-gate-art .arena-sigil{width:80%;bottom:18px;z-index:1}.boss-gate-art .boss-runes{display:flex;gap:12px;bottom:15px;font-size:18px;letter-spacing:0;z-index:4}.boss-runes>span{display:grid;place-items:center;width:44px;height:48px;background:#453664e8;border:2px solid #ebca89;border-radius:22px 22px 8px 8px;color:#fff1c1;box-shadow:0 0 13px #c7955844}
.boss-gate-copy{padding:clamp(24px,3vw,46px);background:radial-gradient(circle at 100% 0%,#77619488,transparent 55%),linear-gradient(135deg,#302c55,#473158);color:#f5edf9;min-width:0}.boss-gate-copy h3{font-size:clamp(28px,3vw,40px);line-height:1.18}.boss-gate-copy p{font-size:16px;line-height:1.7}.boss-rule-grid{gap:8px}.boss-rule-grid span{border:1px solid #d6bb8b44;background:#ffffff0a;border-radius:16px}.boss-rule-grid small{font-size:10px}.boss-gate-copy #startSynonymBossBtn{min-height:52px;border:1px solid #f8d8a2;background:linear-gradient(120deg,#f6d591,#eaaa71);color:#523b47;box-shadow:0 5px 0 #876046;letter-spacing:.01em;font-size:17px}
.rune-boss-stage{background:linear-gradient(135deg,#f7eedb,#eae6f6);gap:18px}.rune-dragon-avatar,.rune-mage{width:170px!important;height:170px!important;font-size:0!important;filter:none!important;mix-blend-mode:normal;margin:auto}.rune-dragon-avatar .world-sprite,.rune-mage .world-sprite{width:100%;height:100%}.rune-boss-stage .rune-dragon-zone,.rune-boss-stage .rune-player-panel{color:#55406c}.rune-target-panel{background:#fffdf6;border:1px solid #d8c394;border-radius:22px}.rune-choice{border-color:#d5c6e6;box-shadow:0 4px 0 #d4c6e1}.synonym-battle-dragon{width:240px;height:240px;filter:none;mix-blend-mode:normal}
/* Illustrated ambassadors become part of each existing portal scene. */
.world-portal .portal-icon{position:relative;isolation:isolate;overflow:hidden}
.world-portal .portal-companion{position:absolute;right:1%;bottom:-8%;width:45%;height:113%;display:block;mix-blend-mode:normal;pointer-events:none}
.portal-companion .world-sprite,.portal-companion .pet-svg{width:100%;height:100%;max-width:none;filter:none!important}
.world-portal .portal-icon>img{object-position:25% center}
@keyframes arena-hover{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
@keyframes arena-spell{0%{opacity:0;transform:translateX(-20%)}20%{opacity:1}100%{opacity:0;transform:translateX(300%) scaleX(1.4)}}
@keyframes arena-counter{0%{opacity:0;transform:translateX(290%)}20%{opacity:1}100%{opacity:0;transform:translateX(-20%)}}
@keyframes arena-impact{0%,100%{opacity:0}45%{opacity:1}}
@media(min-width:1700px){#readingDialog .reading-v2-body{grid-template-columns:minmax(0,1fr) 360px;padding-inline:12px}}
@media(max-width:1000px){.synonym-boss-gate{grid-template-columns:minmax(220px,.8fr) minmax(0,1.2fr)}.boss-rule-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.boss-gate-art .boss-dragon{width:100%}#companionArtContent{grid-template-columns:minmax(0,1fr) 250px;gap:18px}.grammar-mission .grammar-mission-no{width:48px;height:48px}.grammar-mission{grid-template-columns:48px minmax(0,1fr) 16px!important;gap:8px!important}}
@media(max-width:900px){#readingDialog .reading-v2-body{display:block;padding:10px;overflow:auto}#readingDialog .reading-v2-center{overflow:visible}#readingDialog .reading-v2-side{margin-top:14px}#readingDialog .reading-bottom-audio{position:relative}.cinematic-arena{height:300px}.cinematic-arena .grammar-hero-fighter.pet-only{left:4%;width:170px}.cinematic-arena .grammar-dragon{right:3%;width:200px}}
@media(max-width:640px){#petDialog .pet-picker{padding:14px 10px}#petOptions{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:6px 4px 20px}#petOptions .pet-option{padding:9px;gap:6px}#petOptions .pet-option b{font-size:16px}#petOptions .pet-option small{font-size:12px}.companion-art-dialog{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;margin:0;border:0;border-radius:0}.companion-art-header{padding:16px}.companion-art-header h2{font-size:26px}#companionArtContent{display:block;padding:14px}.companion-art-info{padding:0 8px}.companion-art-info h3{margin-top:14px}.companion-art-controls{padding:12px}.companion-art-controls button{padding:8px 12px}.cinematic-arena{height:270px;border-radius:18px}.cinematic-arena .grammar-hero-fighter.pet-only{left:1%;width:42%;bottom:12px}.cinematic-arena .grammar-dragon{right:0;width:47%;bottom:12px}.cinematic-arena .grammar-hero-fighter small,.cinematic-arena .grammar-dragon small{font-size:9px}.arena-banner{top:8px;max-width:90%;padding:8px 12px}.arena-banner>b{font-size:12px}.arena-versus{top:52%;font-size:27px}.synonym-boss-gate{display:flex;flex-direction:column}.synonym-boss-gate .boss-gate-art{min-height:280px;height:280px}.boss-gate-art .boss-dragon{width:240px}.boss-gate-copy{padding:22px}.boss-rule-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.rune-boss-stage{gap:8px}.rune-dragon-avatar,.rune-mage{width:100px!important;height:100px!important}#readingDialog .comic-book-frame{grid-template-columns:30px minmax(0,1fr) 30px!important;gap:3px!important}#readingDialog .comic-reader-v2{padding:4px}}
@media(prefers-reduced-motion:reduce){.cinematic-arena *,.boss-gate-art *{animation:none!important;transition:none!important}#petOptions .pet-option{transition:none}}
