.portrait-setup{display:flex;gap:14px;align-items:center;margin:16px 0;padding:12px;background:#f2ecde;border:1px solid #d1c6ac}.portrait-mini{display:block;width:68px;height:68px;object-fit:cover;border:1px solid #91866b}.portrait-setup span{display:block;font-size:12px;color:#5c614f}.portrait-setup b{display:block;margin:4px 0;font-size:15px}.portrait-setup .text-button{font-size:12px;text-align:left}.player-portrait{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:cover;border:1px solid #9d8d66}.character-portrait{margin:0 0 18px;position:relative}.character-portrait .text-button{display:block;width:100%;padding:7px;background:#e9e0c9;font-size:12px;border:1px solid #b5a37f;border-top:0}.portrait-current{display:grid;grid-template-columns:116px 1fr;gap:20px;align-items:center;margin-bottom:22px}.portrait-current h3{font-size:21px;margin:6px 0}.portrait-current p{font-size:13px;line-height:1.8;color:#505748}.portrait-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.portrait-option{background:#f0e8d6;padding:4px;border:2px solid transparent;cursor:pointer;color:#29382e}.portrait-option img{width:100%;height:auto;aspect-ratio:1;object-fit:cover;display:block}.portrait-option b{display:block;padding:9px 2px;font-size:13px}.portrait-option.selected{border-color:#73542a;box-shadow:0 0 0 1px #73542a}.portrait-upload{padding-top:22px}.portrait-upload p{font-size:12px;line-height:1.8;color:#515949;margin:12px 0}.portrait-photo-preview{max-width:260px;display:block;margin:0 auto 15px;width:100%;aspect-ratio:1;object-fit:cover}.prologue-portrait{width:126px;height:126px;object-fit:cover;border-radius:50%;border:2px solid #d7b66f;margin:0 auto 22px;display:block}.ending-portrait{width:130px;height:130px;object-fit:cover;border:3px double #957345;margin:0 auto 24px;display:block}@media(max-width:600px){.portrait-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.portrait-current{grid-template-columns:86px 1fr;gap:14px}.character-portrait{width:110px;float:right;margin:0 0 14px 14px}.portrait-current h3{font-size:18px}}

.narrative-art{margin:0 0 25px;height:240px;position:relative;overflow:hidden;border:1px solid #c6b68e}.narrative-art img{width:100%;height:100%;object-fit:cover;object-position:center 43%;filter:none;opacity:1}.narrative-art figcaption{position:absolute;inset:auto 0 0;padding:30px 20px 14px;background:linear-gradient(transparent,#15221dd9);color:#fff1d2;font:600 15px/1.6 var(--serif);letter-spacing:1px}.narrative-art figcaption small{display:block;font:11px/1.6 var(--sans);letter-spacing:0;color:#e9dfcc}.art-home-link{display:flex;justify-content:space-between;gap:15px;padding:20px 0;border-bottom:1px solid #c8bda4;margin-bottom:30px;color:#685c43;font-size:13px}.art-gallery{display:grid;grid-template-columns:1fr 1fr;gap:18px}.art-gallery figure{margin:0;background:#eee4cf;border:1px solid #c5b797}.art-gallery img{display:block;width:100%;height:auto}.art-gallery figcaption{font:600 14px/1.7 var(--serif);padding:12px}.prologue-awakening .prologue-landscape{background-image:linear-gradient(90deg,#111c18ed,#111c1899),url('assets/scene-battle.jpg')}.prologue-upbringing .prologue-landscape{background-image:linear-gradient(90deg,#111c18ed,#111c1899),url('assets/scene-study.jpg')}@media(max-width:600px){.narrative-art{height:205px}.art-gallery{grid-template-columns:1fr}.art-home-link{align-items:flex-start;flex-direction:column;gap:8px}}

#modal:has(.portrait-picker){width:min(850px,calc(100vw - 32px));max-width:850px}.portrait-filter{display:flex;gap:8px;border-bottom:1px solid #c4b48e;padding-bottom:12px}.portrait-filter button{flex:1;border:1px solid #c4b48e;padding:10px 12px;font-size:13px}.portrait-filter button[aria-pressed="true"]{background:#843d32;color:#fff4df;border-color:#843d32}.portrait-count{font-size:12px;color:#565e4f;margin:12px 0}.portrait-picker .portrait-grid{max-height:52vh;overflow-y:auto;overscroll-behavior:contain;padding:2px 8px 2px 2px;scrollbar-gutter:stable}.portrait-option:focus-visible{outline-offset:-2px}.portrait-picker .portrait-upload{padding-top:18px}.portrait-picker .portrait-current{grid-template-columns:88px 1fr;margin-bottom:18px}.portrait-picker .portrait-current h3{font-size:19px}@media(max-width:600px){.portrait-filter button{padding:9px 5px;font-size:12px}.portrait-picker .portrait-grid{max-height:46vh}.portrait-picker .portrait-current{grid-template-columns:70px 1fr;gap:12px}.portrait-picker .portrait-current p{font-size:12px}}
