/* VEYSERA V1.1 targeted fixes: real landscape layout and production art usage. */
:root{--landscape-sidebar:clamp(76px,11vw,190px)}
html,body{min-height:100%;overscroll-behavior:none}
#rotate-device{display:none}

/* The character stage uses one shared baseline and normalized visual scale. */
.v2-story-bg{filter:saturate(.58) brightness(.88) contrast(.84) sepia(.04) hue-rotate(-5deg)}
.v2-story-wash{background:linear-gradient(90deg,#dbe2e28c 0,transparent 38%,#59657a2b 75%),linear-gradient(0deg,#46546a73 0,transparent 54%),linear-gradient(135deg,#68778d1f,#766d8424)}
.story-cast{align-items:flex-end;isolation:isolate}
.story-portrait{height:100%;width:var(--stage-width,420px);align-items:flex-end;overflow:visible;filter:none;transform:translateY(var(--stage-y,0))}
.story-portrait::before{content:"";position:absolute;left:16%;right:16%;bottom:0;height:7%;border-radius:50%;background:#26384624;filter:blur(12px);z-index:-1}
.story-portrait img{height:100%;width:100%;object-fit:contain;object-position:center bottom;transform:scale(var(--stage-scale,1));transform-origin:50% 100%;filter:drop-shadow(0 12px 13px #2538462b)}
.story-portrait figcaption{bottom:1.5%}
.story-portrait.is-npc{width:var(--stage-width,405px)}
.story-portrait.is-lead{width:var(--stage-width,425px)}
.story-portrait.is-half img{transform:scale(var(--stage-scale,1.28));transform-origin:50% 100%}
.story-portrait.is-half::after{content:"";position:absolute;left:7%;right:7%;bottom:-1%;height:12%;background:linear-gradient(0deg,#303c4bba,transparent);filter:blur(7px);pointer-events:none}
.v2-tool.active{color:#fff1c9;border-bottom:1px solid #d5bd83}
.v2-dialogue.is-narration .v2-nameplate{background:#e7e2d8;color:#536171}.v2-dialogue.is-speaking .v2-nameplate{background:#405a73;color:#fff8e9}

/* Expression image + movement are presented as one reaction. */
.chibi.mood-smile,.chibi.mood-happy{animation:q-happy 1.2s ease-in-out 3}
.chibi.mood-shy,.chibi.mood-embarrassed{animation:q-shy 2.2s ease-in-out 2}
.chibi.mood-angry,.chibi.mood-annoyed{animation:q-shake .5s ease-in-out 3}
.chibi.mood-sad,.chibi.mood-disappointed{animation:q-sad 3s ease-in-out infinite}
.chibi.mood-surprised{animation:q-surprised .7s ease-out 2}
.chibi.mood-worried{animation:q-worried 1.8s ease-in-out 3}
.chibi.mood-thoughtful{animation:q-thoughtful 2.5s ease-in-out infinite}
@keyframes q-shy{50%{transform:translateY(4px) rotate(2deg)}}
@keyframes q-surprised{40%{transform:translateY(-11px) scale(1.035)}}
@keyframes q-worried{35%{transform:translateX(-4px)}70%{transform:translateX(4px)}}
@keyframes q-thoughtful{50%{transform:translateY(-2px) rotate(-2deg)}}

/* Characters always use the cleaned HD transparent half portrait. */
.v2-dossier-figure{align-items:flex-start;overflow:hidden}.v2-dossier-figure img{height:112%;max-width:92%;object-fit:contain;object-position:center top;image-rendering:auto;mix-blend-mode:normal;filter:drop-shadow(0 16px 16px #263c4b2c);transform:translateY(-4%)}
.v2-detail-frame img{object-fit:contain;object-position:center top;background:#f2eee6;mix-blend-mode:normal}
.portrait-source-note{padding:10px 12px;border-left:2px solid #9a8765;color:#6c7886;font-size:11px;line-height:1.7}

/* Quiet map unlock and full location card. */
.map-point:not(.locked){transition:transform .35s ease,filter .35s ease}
.map-point:not(.locked):hover{transform:translate(-50%,-54%) scale(1.06);filter:drop-shadow(0 0 9px #f1e5bd)}
.map-point:not(.locked):hover .pin-name{transform:translateY(-3px);background:#fbf5e5}
.map-point.just-unlocked{animation:map-reveal 1.8s ease both}
@keyframes map-reveal{0%{opacity:0;filter:grayscale(1) blur(8px);transform:translate(-50%,-42%) scale(.7)}60%{filter:grayscale(.3) blur(0)}100%{opacity:1;filter:none}}
.unlock-card{text-align:center;padding:8px 16px}.unlock-star{display:block;font-size:48px;color:#9b875f;animation:unlock-star 1.5s ease both}.unlock-card>small{letter-spacing:.23em}.unlock-card h2{font-size:29px;margin:7px 0}.unlock-card h3{font-size:21px;margin:4px}.unlock-card>i{display:block;width:120px;height:1px;background:#b6a47f;margin:18px auto}.unlock-card p{line-height:1.8}.unlock-card .btn{margin-top:12px}
@keyframes unlock-star{from{opacity:0;transform:scale(.5) rotate(-25deg)}to{opacity:1;transform:none}}
.location-card>img{width:100%;height:210px;object-fit:cover;filter:saturate(.67) brightness(.92);border:1px solid #b9a987;margin:14px 0}.location-card dl{border-top:1px solid #cabd9f}.location-card dl>div{display:flex;justify-content:space-between;padding:9px 0;border-bottom:1px solid #d8ccb4}.location-card dd{margin:0}

/* Memory book save page. */
.save-book{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.save-card{display:grid;grid-template-columns:minmax(150px,36%) 1fr;min-height:270px;background:#f7f1e5;border:1px solid #b8a887;box-shadow:8px 10px 20px #41536a15;position:relative;overflow:hidden}
.save-card::after{content:"";position:absolute;inset:8px;border:1px solid #cfc2a8;pointer-events:none}
.save-card.auto-save{grid-column:1/-1;grid-template-columns:minmax(240px,38%) 1fr;background:#f2ecde}
.save-thumb{height:100%;min-height:270px}.save-thumb img{opacity:.82;filter:saturate(.68) brightness(.88)}.save-thumb::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#2f465879,transparent 60%)}
.save-thumb b{z-index:2;top:18px;bottom:auto;font-size:18px;letter-spacing:.15em}.save-thumb>span{position:absolute;z-index:2;left:19px;bottom:18px;color:#fff5dd;font:italic 14px Georgia}
.save-page{padding:24px 28px;position:relative;z-index:2}.save-page>small{letter-spacing:.15em;color:#8b7654}.save-page h3{font-size:20px;margin:8px 0 15px}.save-page dl{margin:0}.save-page dl>div{display:grid;grid-template-columns:74px 1fr;padding:4px 0;font-size:11px}.save-page dt{color:#8b7654}.save-page dd{margin:0}.save-progress{height:2px;background:#d2c7b2;margin:15px 0}.save-progress i{display:block;height:100%;background:#4f6c7d}.text-btn.danger{color:#8d625d}

/* Wardrobe is exclusively a chibi fitting room. */
.wardrobe-model .chibi{width:clamp(150px,16vw,230px);height:clamp(190px,26vw,330px)}
.wardrobe-items .item-art .chibi{width:115px;height:130px}.wardrobe-items .shop-item.selected{border-color:#829a7e;background:#edf1e4}.wardrobe-model>.btn{margin-top:16px}
.wardrobe-items .item-art img,.wardrobe-model .chibi img{object-fit:contain;width:100%;height:100%}

/* Chapter progress is unlocked one page at a time. */
.chapter-path{display:flex;align-items:center;gap:8px;margin:10px 0 2px}.chapter-path span{width:25px;height:25px;display:grid;place-items:center;border:1px solid #c5bdab;border-radius:50%;font:10px Georgia;color:#9c9d96;background:#f2ede1}.chapter-path span.complete{color:#f9f2dc;background:#71877d;border-color:#61776d}.chapter-path span.current{color:#586f68;border-color:#889e91;box-shadow:0 0 0 3px #dfe6d9}.chapter-path span.locked{opacity:.48}

/* Market: the same screen throughout, using the supplied green/cream stall language. */
.v2-market{grid-template-columns:minmax(0,1fr) clamp(300px,25vw,380px);background:#cad7cc;color:#435448}
.v2-market-bg{width:calc(100% - clamp(300px,25vw,380px));opacity:.34;filter:saturate(.55) brightness(1.02) sepia(.08)}
.v2-market::before{right:calc(clamp(300px,25vw,380px) + 18px);border-color:#f7efd3aa}
.v2-market-head{right:calc(clamp(300px,25vw,380px) + 30px);color:#3f5a50;background:#f7f0d9d9;border:1px solid #b8aa82;padding:12px 19px;text-shadow:none;max-width:52%;box-shadow:7px 9px #61756318}
.v2-market-head h1{font-size:clamp(23px,2.2vw,34px)}.v2-market-head p{font-size:11px;margin:5px 0 0}.v2-market-head>div:last-child{color:#567067}.v2-market-head b{color:#9b7c48}
.v2-market-scene{background:linear-gradient(180deg,#b8cdc2aa,#e8e5cea8 72%,#bca27e75)}
.market-set{position:absolute;inset:0;overflow:hidden}.market-awning{position:absolute;top:19%;left:4%;right:4%;height:17%;background:repeating-linear-gradient(90deg,#6f9989 0 8%,#efe5c7 8% 16%);clip-path:polygon(2% 0,98% 0,100% 70%,96% 100%,91% 72%,86% 100%,81% 72%,76% 100%,71% 72%,66% 100%,61% 72%,56% 100%,51% 72%,46% 100%,41% 72%,36% 100%,31% 72%,26% 100%,21% 72%,16% 100%,11% 72%,6% 100%,0 70%);border-top:9px solid #587b70;box-shadow:0 12px 18px #43564c24}
.market-menu{position:absolute;left:7%;top:38%;width:112px;padding:12px 14px;background:#4f655a;color:#f5ebcf;border:5px solid #9a7a52;font:italic 17px Georgia;transform:rotate(-1deg);box-shadow:4px 5px #354c4138}.market-menu small{display:block;font:12px/1.65 var(--serif);margin-top:7px}
.market-shelves{position:absolute;left:24%;right:9%;top:39%;height:24%;border:8px solid #9b7f5f;background:#d9c8a8b8;display:flex;align-items:flex-end;justify-content:space-around;padding:14px;border-radius:4px}.market-shelves::before,.market-shelves::after{content:"";position:absolute;left:0;right:0;height:6px;background:#8b7054}.market-shelves::before{top:34%}.market-shelves::after{top:68%}.market-shelves i{width:42px;height:30px;border-radius:50% 50% 22% 22%;background:#f2dfaa;border:2px solid #a98962;box-shadow:50px 18px 0 -3px #e9c8b0}
.market-counter{position:absolute;left:4%;right:4%;bottom:3%;height:30%;background:linear-gradient(#b8956d 0 12%,#9d7957 12% 100%);border:4px solid #826347;box-shadow:inset 0 0 0 2px #c5a984}.market-counter::after{content:"";position:absolute;inset:24px;background:repeating-linear-gradient(90deg,transparent 0 23%,#7f62455c 23% 24%)}
.v2-market-panel{grid-column:2;background:#f6f0df;border-left:1px solid #a89369;box-shadow:-12px 0 30px #4a63572b;padding:clamp(14px,2vw,26px)}
.v2-market-flow li.active i{background:#607d6f;border-color:#607d6f}.v2-market-kicker{color:#7f8f68}.v2-market-panel .v2-primary{background:#617e70;border-color:#8b9d7c}.v2-ingredient{background:#eef0df;border-color:#b8c3a5}.v2-ingredient.selected{background:#7d9987;border-color:#657f70}.v2-craft-game{background:#edf1df;border-color:#b7c3a6}.v2-craft-game>span{color:#718c72}.craft-control input{accent-color:#66816e}
.v2-order-ticket{z-index:5;top:21%;left:auto;right:4%;width:230px;background:#fbf4df;border-color:#a9926b;transform:rotate(2deg)}
.v2-market-helper{z-index:5;right:31%;bottom:24%}.v2-market-helper .chibi img{mix-blend-mode:normal}.market-customer{z-index:7;left:7%;bottom:5%}.v2-market-dessert{z-index:8;left:52%;bottom:8%}.market-counter{z-index:6}.v2-market-helper>span,.market-customer>span{position:relative;z-index:8}.market-customer .chibi{filter:drop-shadow(0 10px 10px #31483e35)}
.v2-market-panel button,.v2-helper-pick{border-radius:2px;box-shadow:inset 0 0 0 2px #fff8e66e,2px 3px 0 #798e7830;clip-path:polygon(4px 0,calc(100% - 5px) 1px,100% 5px,calc(100% - 2px) calc(100% - 4px),5px 100%,0 calc(100% - 5px))}
.v2-market-panel .v2-primary{background:linear-gradient(#738f7e,#5f796d);color:#fff8e8;border:1px solid #4e695e;text-shadow:0 1px #3f574c;letter-spacing:.08em}
.v2-market-panel .v2-primary:hover{background:linear-gradient(#7f9b89,#688275);transform:translateY(-1px)}
.v2-ingredient{background:linear-gradient(#f4f3df,#e4ead7);border:1px solid #a9b995;color:#4c6259}.v2-ingredient.selected{background:linear-gradient(#8da394,#718a7c);color:#fff9e9;box-shadow:inset 0 0 0 2px #c9d4b955}
.v2-market-panel::after{content:"✦  PATISSERIE  ✦";display:block;text-align:center;padding-top:10px;border-top:1px solid #c7b992;color:#9a8762;font:9px Georgia;letter-spacing:.22em}

/* Agreement is a blocking parchment gate before any game interaction. */
.agreement-backdrop{background:#263746a8;backdrop-filter:blur(12px) brightness(.55)}
.agreement-modal{background:linear-gradient(#f5eddb,#eee4cf);border:1px solid #a99469;box-shadow:0 20px 80px #19293599,inset 0 0 0 6px #f9f3e7,inset 0 0 0 7px #c4b18b;padding:30px 38px}
.agreement-modal::before,.agreement-modal::after{content:"✧";position:absolute;color:#a58e62;font-size:20px}.agreement-modal::before{left:15px;top:13px}.agreement-modal::after{right:15px;bottom:13px}.agreement-text{background:#f8f2e5;border-color:#c9b894;box-shadow:inset 0 0 22px #aa946f12}.agreement-actions{display:flex;gap:12px;justify-content:flex-end}.agreement-actions .btn{min-width:150px}.agreement-declined .agreement-modal{filter:saturate(.8)}

/* One design language, scaled for landscape tablets and phones. */
.game-shell{min-height:100dvh}
@media (max-width:1200px) and (orientation:landscape){
  .game-shell,body[data-page] .game-shell{grid-template-columns:clamp(78px,12vw,155px) minmax(0,1fr)}
  .sidebar,body[data-page] .sidebar{width:clamp(78px,12vw,155px)}
  .save-book{grid-template-columns:1fr}.save-card.auto-save{grid-column:auto}
}
@media (max-width:900px) and (orientation:landscape){
  body{overflow-x:hidden}.game-shell,body[data-page] .game-shell{display:grid!important;grid-template-columns:74px minmax(0,1fr)!important;padding-bottom:0!important;min-height:100dvh}
  .sidebar,body[data-page] .sidebar{position:sticky!important;inset:0 auto 0 0!important;width:74px!important;height:100dvh!important;padding:8px 5px!important;border:0;border-right:1px solid #b7aa8b!important;background:#405a73!important;overflow:hidden}
  .sidebar .brand,body[data-page] .sidebar .brand{display:flex!important;justify-content:center;margin:0 0 8px}.sidebar .brand>span:nth-child(2),body[data-page] .sidebar .brand>span:nth-child(2),.sidebar-foot,.side-rule{display:none!important}
  .sidebar nav,body[data-page] .sidebar nav{display:grid!important;overflow-y:auto!important;overflow-x:hidden!important;gap:2px!important}.nav-item,body[data-page] .nav-item{width:64px!important;min-width:64px!important;min-height:42px!important;padding:5px!important;margin:0!important;display:grid!important;grid-template-columns:22px 1fr!important;justify-content:start!important;align-items:center!important;clip-path:none!important;border-radius:3px!important}.nav-item span,body[data-page] .nav-item span{display:block!important}.nav-item b{display:none!important}.nav-item small,body[data-page] .nav-item small{display:block!important;font-size:9px!important;white-space:nowrap}.nav-item .icon{width:18px!important;height:18px!important}
  body[data-page] .main,.main{padding:0 12px!important;min-width:0}.topline{height:38px!important;margin:0!important}.page-foot{display:none}.page-heading{margin:8px 0 10px}.page-heading h1{font-size:22px}.page-heading p{font-size:10px}.author-note{padding:6px 9px;font-size:9px}.author-note p{display:none}
  .home-grid{display:grid!important;grid-template-columns:minmax(0,1fr) 185px!important;gap:10px}.map-wrap{height:auto!important;min-height:210px!important;aspect-ratio:16/8.2!important}.journal{margin:0!important;padding:14px!important}.journal .chapter-number{font-size:38px}.journal h2{font-size:17px}.journal p{font-size:10px}.journal-note{display:none}.home-lower{grid-template-columns:1fr!important;margin-top:10px}.little-note{display:none}.life-scene{min-height:150px}.page-heading .heading-star{display:none}
  body[data-page="story"] .main,body[data-page="characters"] .main,body[data-page="market"] .main{padding:0!important}.v2-story,.v2-characters,.v2-market{height:100dvh;min-height:360px!important;margin:0!important}
  .v2-story{padding:0!important}.v2-story-head{inset:7px 10px auto!important;padding:0!important;display:flex!important}.v2-story-head>div:first-child{padding:5px 9px!important}.v2-story-head h1{font-size:17px!important}.v2-story-head small,.v2-story-head span{font-size:8px!important}.v2-story-tools{display:flex!important;margin:0!important;gap:3px!important}.v2-tool{padding:5px 7px!important;font-size:8px!important}.story-cast{inset:8% 8% 31%!important;min-height:0!important;gap:0!important}.story-portrait,.cast-1 .story-portrait{height:100%!important;width:44%!important;max-width:48%!important;align-self:auto!important}.cast-1 .story-portrait{width:54%!important;max-width:62%!important}.story-portrait figcaption{font-size:8px;padding:2px 7px}.v2-dialogue{position:absolute!important;left:10px!important;right:10px!important;bottom:8px!important;margin:0!important;min-height:126px!important;max-height:43%!important;padding:26px 14px 8px!important;overflow:auto}.v2-nameplate{left:13px!important;top:-17px!important;min-width:150px!important;height:34px!important;padding:4px 15px!important}.v2-nameplate b{font-size:12px!important}.v2-nameplate small{font-size:6px}.v2-dialogue-body{min-height:48px}.v2-dialogue h2{font-size:12px;margin:0 0 4px}.v2-prose{font-size:13px!important;line-height:1.55!important}.v2-choices{grid-template-columns:1fr 1fr!important;gap:4px}.v2-choice{font-size:11px!important;min-height:30px;padding:5px 8px}.v2-dialogue footer{margin-top:5px;padding-top:5px;font-size:7px}.choice-q .chibi{width:52px;height:58px}
  .v2-dossier-head{padding:10px 16px 3px!important}.v2-dossier-head h1{font-size:20px}.v2-dossier-head p{display:none}.v2-character-tabs{position:absolute!important;left:14px!important;top:76px!important;display:grid!important;padding:0!important;overflow:visible!important}.v2-character-tab{min-width:0!important;width:92px!important;padding:6px 8px!important}.v2-character-tab span{font-size:10px}.v2-character-tab b{font-size:10px!important}.v2-dossier-main{display:grid!important;grid-template-columns:48% 52%!important;height:calc(100dvh - 68px)!important;min-height:0!important}.v2-dossier-figure{height:auto!important;padding:0 0 0 86px!important}.v2-dossier-figure img{height:118%!important;object-position:center top!important;transform:translateY(-4%)!important}.v2-dossier-copy{align-self:center!important;margin:0!important;padding:8px 18px!important;background:#f0ebe0c9}.v2-dossier-name h2{font-size:23px!important}.v2-dossier-note{font-size:11px!important;line-height:1.55}.v2-tags{margin:8px 0}.v2-dossier-copy dl{margin:8px 0}.v2-dossier-copy dl>div{padding:4px 0;grid-template-columns:90px 1fr}.portrait-source-note{display:none}.v2-dossier-details{display:none!important}
  .v2-market{display:grid!important;grid-template-columns:minmax(0,1fr) 280px!important}.v2-market-bg{width:calc(100% - 280px)!important;height:100%!important}.v2-market-scene{min-height:100dvh!important}.v2-market-head{left:10px!important;right:292px!important;top:8px!important;max-width:none!important;padding:6px 10px!important}.v2-market-head h1{font-size:18px!important}.v2-market-head p{display:none}.v2-market-head>div:last-child{font-size:8px;gap:7px}.market-awning{top:18%}.market-menu{top:37%;left:4%;transform:scale(.7);transform-origin:left top}.market-shelves{left:21%;top:38%;height:23%}.v2-order-ticket{top:20%!important;right:2%!important;width:150px!important;padding:8px!important}.v2-order-ticket b{font-size:12px;margin:3px 0 6px}.v2-order-ticket span,.v2-order-ticket small{font-size:7px!important}.v2-market-helper{right:27%!important;bottom:19%!important}.v2-market-helper .chibi{width:92px!important;height:106px!important}.market-customer{bottom:4%!important}.market-customer .chibi{width:82px!important;height:95px!important}.v2-market-dessert{bottom:7%!important;transform:translateX(-50%) scale(.72)!important}.v2-market-panel{grid-column:2!important;min-height:100dvh!important;padding:10px!important;overflow:auto}.v2-market-flow{padding-bottom:7px}.v2-market-flow li span{font-size:7px!important}.v2-market-flow li i{width:17px;height:17px}.v2-market-panel-body{padding-top:8px!important}.v2-market-panel h2{font-size:19px;margin:3px 0 6px}.v2-market-panel p{font-size:9px;line-height:1.5}.v2-helper-list{gap:3px;margin:4px 0 8px}.v2-helper-pick .chibi{width:38px;height:40px}.v2-ingredient-group{margin:4px 0}.v2-ingredient{min-height:38px!important;padding:4px;font-size:10px!important}.v2-ingredient::before{width:25px!important;height:14px!important;margin-bottom:2px!important}.v2-craft-game{height:92px;margin:5px 0}.v2-craft-game>span{font-size:40px}.craft-control{padding:4px!important;gap:4px!important}.craft-control output{font-size:21px!important}.v2-market-panel .v2-primary{min-height:34px;padding:6px;font-size:10px}
  .save-book{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.save-card,.save-card.auto-save{grid-column:auto;grid-template-columns:105px 1fr;min-height:180px}.save-thumb{min-height:180px}.save-page{padding:12px 14px}.save-page h3{font-size:14px}.save-page dl>div{font-size:8px;grid-template-columns:55px 1fr}.save-card .actions{gap:8px}.save-card .text-btn{font-size:9px}
  .wardrobe-layout{display:grid!important;grid-template-columns:180px minmax(0,1fr)!important;padding:12px!important;gap:12px}.wardrobe-model{margin:0!important}.wardrobe-model .chibi{width:130px!important;height:150px!important}.wardrobe-items{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:7px}.wardrobe-items .shop-item{padding:7px!important}.wardrobe-items .item-art{height:75px}.wardrobe-items .item-art .chibi{width:65px;height:72px}.wardrobe-items .shop-item h3{font-size:12px}.wardrobe-items .shop-item p{display:none}
  .agreement-modal{width:calc(100vw - 26px)!important;max-height:calc(100dvh - 18px)!important;padding:16px 22px!important}.agreement-modal h2{font-size:20px;margin:2px 0}.agreement-text{max-height:43dvh!important;font-size:10px!important;line-height:1.6!important;margin:8px 0!important;padding:10px!important}.agreement-modal .check-row{margin:7px 0;font-size:10px}.agreement-actions .btn{min-width:120px;min-height:34px;font-size:10px;padding:6px 10px}
}

@media (max-width:900px) and (orientation:portrait){
  #rotate-device{position:fixed;z-index:9999;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:32px;background:radial-gradient(circle at 50% 38%,#eef0e4,#ccd8d2 70%,#aabcb8);color:#405a66}
  #rotate-device::before{content:"";position:absolute;inset:18px;border:1px solid #9d987b80;pointer-events:none}
  #rotate-device h2{font-size:30px;margin:18px 0 8px}#rotate-device p{font-size:15px;line-height:1.9}#rotate-device small{margin-top:20px;letter-spacing:.24em;font-size:9px;color:#758b8b}
  .rotate-orbit{position:relative;width:120px;height:86px;border:1px solid #879b92;border-radius:28px;transform:rotate(90deg);animation:device-turn 2.6s ease-in-out infinite}.rotate-orbit span{font-size:32px;line-height:86px}.rotate-orbit b{position:absolute;right:-12px;top:-11px;color:#a69165}.rotate-orbit i{position:absolute;inset:-15px;border:1px dashed #aab39d;border-radius:36px}
  @keyframes device-turn{0%,20%{transform:rotate(0)}65%,100%{transform:rotate(90deg)}}
  #app,#modal-root,#toast{visibility:hidden;pointer-events:none}
}

@media (max-width:900px) and (orientation:landscape){
  .sidebar,body[data-page] .sidebar{padding-left:max(5px,env(safe-area-inset-left))!important}
  .v2-market-panel{padding-right:max(10px,env(safe-area-inset-right))!important}
}

/* Character archive: reserve air above the original transparent art.  A quiet
   paper/ink foreground makes half-portrait endings intentional, not cut off. */
body[data-page="characters"] .v2-dossier-figure{align-items:flex-start!important;overflow:hidden;padding-top:0!important}
body[data-page="characters"] .v2-dossier-figure img{
  display:block;width:auto;height:calc(100% - clamp(32px,4vh,58px))!important;
  max-width:92%;object-fit:contain;object-position:center top!important;
  margin-top:clamp(32px,4vh,58px);transform:none!important;align-self:flex-start;
}
body[data-page="characters"] .v2-dossier-figure::after{
  content:"";position:absolute;z-index:3;pointer-events:none;
  left:0;right:0;bottom:0;height:clamp(155px,23%,290px);
  background:linear-gradient(180deg,rgba(239,240,234,0) 0%,rgba(239,240,234,.48) 29%,#eff0eae8 68%,#eff0ea 100%);
}
body[data-page="characters"] .v2-dossier-figure::before{
  content:"❧   ·   ✧   ·   ❧";position:absolute;z-index:4;pointer-events:none;
  bottom:4%;left:30%;right:6%;text-align:center;color:#899a96a6;
  font:italic clamp(15px,1.5vw,23px) Georgia,serif;letter-spacing:.7em!important;
  border-top:1px solid #9baaa361;padding-top:12px;
}
body[data-page="characters"] .v2-figure-number{z-index:4;bottom:5%}
@media (max-width:900px) and (orientation:landscape){
  body[data-page="characters"] .v2-dossier-figure img{height:calc(100% - 16px)!important;margin-top:16px}
  body[data-page="characters"] .v2-dossier-figure::after{height:clamp(72px,23%,135px)}
  body[data-page="characters"] .v2-dossier-figure::before{bottom:3%;font-size:12px;padding-top:5px}
}

/* Gentle common light, equal baseline and quieter NPC depth. */
.story-portrait img{filter:saturate(.83) contrast(.95) brightness(.97) drop-shadow(0 10px 12px #25384630)}
.story-cast::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,#aab5be0a 0%,#71819513 76%,#52617023 100%);z-index:2}
.v2-tool.active,.v2-tool[aria-pressed="true"]{background:#e8e4d6;color:#354f66;border-color:#edf0e6;box-shadow:0 0 0 2px #455f79aa,inset 0 0 0 1px #b6a681}

/* The visible thigh endings fade even if the source canvas has blank space. */
body[data-page="characters"] .v2-dossier-figure img{
  -webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 66%,#000b 77%,#0006 87%,transparent 99%);
  mask-image:linear-gradient(to bottom,#000 0%,#000 66%,#000b 77%,#0006 87%,transparent 99%);
}

/* A single page scroll on desktop and a scrollable rail on short landscape
   screens; neither nav area traps wheel or touch scroll at its end. */
@media (min-width:901px){
 .sidebar,body[data-page] .sidebar{position:relative!important;top:auto!important;height:auto!important;min-height:100%!important;align-self:stretch;overflow:visible!important}
 .sidebar nav,body[data-page] .sidebar nav{overflow:visible!important}
}
@media (max-width:900px) and (orientation:landscape){
 .sidebar,body[data-page] .sidebar{overflow-y:auto!important;overflow-x:hidden!important;overscroll-behavior-y:auto!important;-webkit-overflow-scrolling:touch}
 .sidebar nav,body[data-page] .sidebar nav{overflow:visible!important;overscroll-behavior-y:auto!important}
}
