/* Quest sprite has a 108x40 canvas; visible artwork starts at y=3. */
.jp-portals{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;padding:0 12px;align-items:start}
.jp-portals>*{min-width:0}
.jp-portals .tcq-slot{padding:0;margin:0!important}
.jp-portals .tcq-slot .tcq-portal{width:100%;max-width:none}
.jp-portal{aspect-ratio:108/40;display:flex;align-items:flex-end;justify-content:center}
.jp-entrance{display:block;width:92.5%;padding:0;border:0;background:transparent;cursor:pointer;line-height:0}
.jp-entrance img{width:100%;height:auto;display:block}
.jp-entrance:hover{filter:brightness(1.05)}
.jp-entrance:focus-visible{outline:3px solid #c40020;outline-offset:3px}
.jp-coming{box-sizing:border-box;width:min(420px,calc(100% - 32px));max-height:calc(100dvh - 32px);overflow:auto;border:2px solid #d6ad51;border-radius:20px;padding:36px 24px;background:#210b0b;color:#fff5cf;text-align:center;box-shadow:0 20px 80px #0006;margin:auto}
.jp-coming::backdrop{background:#150a20b3;backdrop-filter:blur(4px)}
.jp-coming img{width:100%;height:auto;display:block;margin:10px auto 26px}
.jp-coming h2{font-size:clamp(20px,6vw,28px);font-weight:700;letter-spacing:.12em;margin:0;line-height:1.3}
.jp-coming p{font-size:14px;color:#d8c9de;margin:14px 0}
.jp-coming-close{position:absolute;right:8px;top:4px;width:44px;height:44px;border:0;background:none;color:white;font-size:28px;cursor:pointer}
